位置: IT常识 - 正文

JavaWeb之Cookie详解(一)(java cookie)

编辑:rootadmin
JavaWeb之Cookie详解(一) 一.Cookie简介

推荐整理分享JavaWeb之Cookie详解(一)(java cookie),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javaee cookie,java中cookie是什么意思,javaweb的cookie,java cookies,java cookies,java web中cookie的描述,javaweb的cookie,java web中cookie的描述,内容如对您有帮助,希望把文章链接给更多的朋友!

Cookie是在HTTP协议下,服务器维护客户工作站上信息的一种方式,其作用是维护服务端与客户端浏览器的会话状态。由于HTTP协议的特点是无状态性,它对于事务处理没有记忆能力,所以服务端不会记录当前客户端浏览器的访问状态,因此引入了Cookie的概念,在Servlet中提供了Cookie对象用以解决上述会话状态无法维持的问题。Cookie通过客户端浏览器实现会话的维持(与HttpSession有区别),存储在浏览器目录的文本文件中,经常用于保存用户登录网站时的个人信息。

例如:在登陆电商平台时,使用了Cookie保存数据,我们在后续进行浏览商品页,支付等操作时,就不必再进行登陆操作。但如果不使用Cookie,那么浏览器就不会保存数据,我们在每一次请求资源时都需要重新登陆。

二.Cookie对象的特点Cookie对象使用字符串存储数据Cookie对象使用Name和Value结构存储数据Servlet4.0版本之前,Cookie存储的数据中不支持中文,从Servlet4.0开始Cookie中的value支持中文存储Cookie与域名绑定故不可以跨顶级域名访问,只能访问同一顶级域名下的多级域名Cookie对象保存在客户端浏览器内存或系统磁盘中List itemCookie对象安全性差,建议加密后存储三.创建第一个Cookie

通过new关键字来创建Cookie对象

Cookie cookie = new Cookie("Name","Value")//key和value都需要使用字符串形式存储

对象创建好之后就需要将其提交给浏览器,由HttpServletResponse对象的addCookie方法将Cookie写回给浏览器

response.addCookie(cookie)

完整代码如下:

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebServlet(urlPatterns = "/createCookie.do")public class CreateCookieServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建Cookie,注意 ✳name值和value值都必须以字符串型出现✳ Cookie cookie = new Cookie("firstCookie","hello_Cookie!"); //将Cookie对象写回给浏览器 resp.addCookie(cookie); //让客户端进行响应,如果创建成功则打印出"create Cookie successfully" PrintWriter pw = resp.getWriter(); pw.println("create Cookie successfully"); pw.flush(); pw.close(); }}JavaWeb之Cookie详解(一)(java cookie)

运行web项目,访问/createCookie.do资源,页面显示create Cookie successfully,Cookie创建成功

接下来我们看看浏览器中的Cookie(右键点击检查,进入应用程序栏,点击Cookie),Name值为firstCookie,Value值为hello_Cookie!,是我们此前为Cookie添加的名称和值。

四.获取Cookie中的数据

浏览器请求资源时会将与当前访问域名相关的Cookie在请求中提交到服务端。服务端通过HttpServletRequest对象的getCookie方法获取Cookie,并返回一个Cookie数组。

Cookie[] cookies = request.getCookies()

若想取出Cookie数组中的数据,可以使用Cookie对象提供的api进行取出Name和Value的操作。

String name = cookie.getName();//取出Name值String value = cookie.getValue();//取出Value值

完整代码如下:

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebServlet(urlPatterns = "/getCookie.do")public class GetCookieDataServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取Cookie对象 Cookie[] cookies = req.getCookies(); //获取Cookie中的数据 PrintWriter pw = resp.getWriter(); //遍历Cookie数组 for(int i=0;i<cookies.length;i++) { Cookie cookie = cookies[i]; String name = cookie.getName(); String value = cookie.getValue(); pw.println("Name=" + name + ",Value=" + value); } pw.flush(); pw.close(); }}

仍使用此前创建的Cookie对象进行测试,访问/createCookie成功创建Cookie后接着访问/getCookie.do资源,页面返回之前写给浏览器的Cookie的Name值和Value值。

五.总结

通过new关键字创建一个新的Cookie对象,使用response.addCookie方法将cookie写回给浏览器,再经request.getCookies方法返回浏览器请求到的Cookie,利用cookie.getName方法和cookie.getValue方法提取Cookie数组的Name值和Value值。

本文链接地址:https://www.jiuchutong.com/zhishi/297897.html 转载请保留说明!

上一篇:基于WEB的网上购物系统的设计与实现(附:源码 论文 sql文件)(基于web的购物网站)

下一篇:javascript - localStorage 本地存储(新增、删除、修改)使用教程

  • 网络贷款需要交钱吗
  • 计提企业所得税会计科目
  • 盈余公积发放现金股利分录怎么写
  • 购货发票属于什么证据?
  • 社保滞纳金所得税汇算需要调增吗
  • 累计纳税工资是什么意思
  • 小规模纳税人增值税税率
  • 二房东转租如何办理营业执照
  • 长期借款科目核算的是企业的长期借款本金和利息
  • 事业单位之间调动需要多久
  • 客户退回发票会退回吗
  • 企业申请核定征收的要求
  • 小微企业所得税优惠政策2023
  • 合同印花税多交了怎么退
  • 从2017年7月1日起到现在多少天
  • 关于金融行业的经典句子
  • 生活服务业包括哪些行业照片
  • 房租出租税收编码和税率
  • 工资薪金总额包括哪些内容
  • 网店提现要多久能到账
  • 医疗机构免征增值税如何申报
  • 月销售不超过10万免征哪些税
  • 原材料盘亏计入
  • 暂估入库入库单范本
  • 包装物如何做会计分录
  • 华硕笔记本装win8
  • 误解苹果
  • 苹果macOS 13.3 RC 发河北承德市承德县华夏电器
  • 多源传感器融合
  • PHP:pcntl_get_last_error()的用法_PCNTL函数
  • zend框架教程
  • 成本费用科目包括
  • 关于商业承兑汇票的多选题有哪些
  • json与对象的区别
  • 劳务派遣公司的注册资本最低限额为
  • 城镇土地使用税优惠政策
  • 含消费税的商品开成了不含消费税怎么办
  • 残疾人报税怎么报
  • 02-MyBatis-Plus
  • 现金收款凭证是发票吗
  • mysql分页性能优化
  • 本年利润贷方余额表示盈利还是亏损
  • Windows下PostgreSQL安装图解
  • 建筑施工仪器设备有哪些
  • 外购商品职工福利进项税额转出如何记账?
  • 背书的银行承兑汇票怎么做账
  • 待认证进项税额月末怎么处理
  • 企业征收所得税会计分录
  • 上一年度主营业务成本多计提了
  • 营业外收入在汇算清缴里填哪张表
  • 纳税人去税务局办什么
  • 高价卖股份犯法么
  • 未抵扣进项税额转出会计分录
  • 月报报表格式
  • MySQL存储过程和函数有什么区别?
  • mysql求两个字段的和
  • linux系统清理磁盘空间
  • windows隐藏administrator
  • os x yosemite10.10.5怎么样?os x yosemite10.10.5公测版下载地址
  • 在mac下如何安装软件
  • win10h2版本
  • xp系统提升性能
  • win7win10双硬盘双系统
  • linux虚拟机怎么查看目录
  • win7 64位旗舰版设置插上耳机就能播放声音拔下耳机就自动禁音方法
  • 刚接触 python 如何快速上手?
  • perl字符串替换 ~s
  • cocos2dx 3.0 quick lua schedler
  • java物流功能
  • 计算机中丢失opencv_core249.dll
  • jquery操作table
  • 把下一行的数字去掉
  • android在手机上运行
  • [置顶] [Android Studio 权威教程]Android Studio 三种添加插件的方式
  • High Level Networking Concepts
  • js下拉菜单的制作方法
  • python讲解
  • 离线开票金额为0
  • 上季度报表错误怎样更正
  • 企业税收怎么收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设