位置: 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 本地存储(新增、删除、修改)使用教程

  • 鸿蒙地震预警怎么开启(鸿蒙 地震预警)

    鸿蒙地震预警怎么开启(鸿蒙 地震预警)

  • 国家反诈中心怎么修改个人信息(国家反诈中心怎么拦截骚扰电话)

    国家反诈中心怎么修改个人信息(国家反诈中心怎么拦截骚扰电话)

  • 苹果12在哪里开启深色模式(苹果12在哪里开5g)

    苹果12在哪里开启深色模式(苹果12在哪里开5g)

  • 苹果手机里低数据模式是什么意思(苹果手机低数据模式怎么改)

    苹果手机里低数据模式是什么意思(苹果手机低数据模式怎么改)

  • 怎么查看本机号码(怎么查看本机号码手机号)

    怎么查看本机号码(怎么查看本机号码手机号)

  • 优酷点了倍速怎么关(优酷倍速不见了)

    优酷点了倍速怎么关(优酷倍速不见了)

  • airpods每次打开电量不一样(airpods每次打开都要重新配对)

    airpods每次打开电量不一样(airpods每次打开都要重新配对)

  • b站直播回放在哪里(b站直播回放在哪里可以找到2022)

    b站直播回放在哪里(b站直播回放在哪里可以找到2022)

  • 京东塑封拆了可以退吗(京东拆封了能不能退货)

    京东塑封拆了可以退吗(京东拆封了能不能退货)

  • 序列号ff开头是哪里的(序列号ff开头是官换机吗)

    序列号ff开头是哪里的(序列号ff开头是官换机吗)

  • 抖音消息怎么一键删除(抖音消息怎么一键清空互动消息)

    抖音消息怎么一键删除(抖音消息怎么一键清空互动消息)

  • xsmax发热正常吗(xsmax发热严重怎么回事)

    xsmax发热正常吗(xsmax发热严重怎么回事)

  • 拉黑对方聊天记录会消失吗(拉黑对方聊天记录咋的找到了)

    拉黑对方聊天记录会消失吗(拉黑对方聊天记录咋的找到了)

  • 手机下载的文件在哪里(手机下载的文件找不到)

    手机下载的文件在哪里(手机下载的文件找不到)

  • 正在设置apple id一直不动(苹果14正在设置apple id)

    正在设置apple id一直不动(苹果14正在设置apple id)

  • 手机来信息闪光灯怎么设置(手机来信息闪光灯怎么关闭)

    手机来信息闪光灯怎么设置(手机来信息闪光灯怎么关闭)

  • 绑定淘宝客pid是什么意思(淘宝客pid是几位数字在哪里找)

    绑定淘宝客pid是什么意思(淘宝客pid是几位数字在哪里找)

  • word的退出方式有哪些(word退出方法有几种?详细说明)

    word的退出方式有哪些(word退出方法有几种?详细说明)

  • 苹果手机后壳碎了怎么办(苹果手机后壳碎了用着会不会有危险)

    苹果手机后壳碎了怎么办(苹果手机后壳碎了用着会不会有危险)

  • vivoy93按键怎么弄出来(vivoy93如何设置按键)

    vivoy93按键怎么弄出来(vivoy93如何设置按键)

  • 华为手机可以连接苹果无线耳机吗(华为手机可以连苹果耳机吗)

    华为手机可以连接苹果无线耳机吗(华为手机可以连苹果耳机吗)

  • 苹果x卡通人物在哪里(iphone 卡通人物)

    苹果x卡通人物在哪里(iphone 卡通人物)

  • 峰值性能容量停用后果(峰值性能容量停用后多久自动关机)

    峰值性能容量停用后果(峰值性能容量停用后多久自动关机)

  • 【ChatGPT】ChatGPT-5 强到什么地步?(chat p)

    【ChatGPT】ChatGPT-5 强到什么地步?(chat p)

  • 解决router.beforeEach()动态加载路由出现死循环问题(解决掉发的有效方法)

    解决router.beforeEach()动态加载路由出现死循环问题(解决掉发的有效方法)

  • 织梦dedecms获取当前内容页栏目id号的方法(织梦cms为什么不维护了)

    织梦dedecms获取当前内容页栏目id号的方法(织梦cms为什么不维护了)

  • ECharts 引入中国地图和区域地图(echarts怎么引入)

    ECharts 引入中国地图和区域地图(echarts怎么引入)

  • 共享税种
  • 小规模纳税人通用申报表
  • 已经缴税的发票还能作废吗
  • 投资入股变更股权比例
  • 房屋合同印花税税率属于个人交的吗
  • 免抵税额什么时候缴纳城建税
  • 企业残疾金的基数是多少
  • 利润表营业外收入怎么取数
  • 加计抵扣进项税进营业外收入
  • 在建工程转什么
  • 应付职工薪酬如何填列
  • 应收贷方余额怎么处理
  • 机动车临时号牌有效期多久
  • 在筹建期间的费用属于什么
  • 所得税汇算清缴时间期限
  • 机关和事业单位哪个好
  • 企业员工报销法律规定
  • 长期待摊费用当月增加当月摊销吗
  • 加油票可以抵扣几个点的增值税
  • 分期付款股权转让
  • 以前年度损益调整怎么用
  • 金融企业呆账准备金是否允许补提
  • 企业的成本费用包括哪些
  • 会议费 报销
  • win10怎么关闭相机
  • macos usb启动
  • gif图片查看软件
  • thinkpad预装的office怎么激活
  • 劳务外包开什么样的发票
  • 文件错误会追究拟稿人吗
  • 销售免税农产品进项税可以抵扣吗
  • 项目提成比例
  • 如何办理车辆购置证变更手续
  • 集团的资产
  • 防伪税控服务费怎么交
  • 代订住宿费报销
  • 人工智能的几个发展阶段
  • 实收资本挂在其他应收款怎么冲销
  • 最详细、最完整的相机标定讲解
  • jsoup js
  • 员工预支款计入什么科目
  • userpasswords
  • 商业流通企业
  • 有赞微小店认证麻烦
  • 深入理解计算机系统
  • 事务所企业所得税
  • 药店的主营业务类别怎么填
  • 使用mysql的disctinct group by查询不重复记录
  • 企业之间借款利息开票编码
  • 营业利润净利润利润总额的区别
  • 暂估成本发票最晚什么时候补齐
  • 快递做账用什么软件
  • 收到投资款现金流量
  • 汽油费进项税额能抵扣吗
  • 上海残疾人就业保障金计算公式
  • 电子发票报销如何处理
  • 存款利息收入是否缴纳增值税
  • 新税法和新准则的关系
  • 成本费用和损失的区别
  • sqlserver数据库恢复挂起状态
  • sql convert函数使用小结
  • linux统计重复次数
  • macbookpro双系统和虚拟机
  • win10怎么设置net3.5
  • win7无法注册dll文件
  • 常见的场景切换效果有哪些
  • js显示时间并且之后秒数实时更新
  • nodejs 异步io底层原理
  • 批处理计算的特点
  • css如何把图片重叠在一起
  • jquery 插件写法
  • node.js deno
  • JavaScript中的数据类型
  • javascript类定义
  • javascript面向对象吗
  • Windows下Eclipse+PyDev配置Python+PyQt4开发环境
  • 广州市地税局副局长
  • 云南省国家税务局网上办税服务厅
  • 从事农业种植是什么职业
  • 上海增值税发票抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设