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

  • 淘宝怎么搜不到电子烟(淘宝怎么搜不到以纯旗舰店)

    淘宝怎么搜不到电子烟(淘宝怎么搜不到以纯旗舰店)

  • 笔记本win7wifi功能消失了(笔记本电脑win7无线网络开关在哪里打开)

    笔记本win7wifi功能消失了(笔记本电脑win7无线网络开关在哪里打开)

  • switch如何充电(switch怎么充电手柄)

    switch如何充电(switch怎么充电手柄)

  • mate30pro如何关闭程序(mate30pro如何关闭悬浮按钮)

    mate30pro如何关闭程序(mate30pro如何关闭悬浮按钮)

  • 苹果11镜头膜怎么取下来(苹果11镜头膜怎么贴视频)

    苹果11镜头膜怎么取下来(苹果11镜头膜怎么贴视频)

  • vivo手机去过地方记录在哪(vivo手机有去过的位置显示从哪里关闭)

    vivo手机去过地方记录在哪(vivo手机有去过的位置显示从哪里关闭)

  • 微处理器的组成三部分(微处理器的组成不包括)

    微处理器的组成三部分(微处理器的组成不包括)

  • 华为手机微信来信息没有声音怎么回事(华为手机微信来语音不响铃怎么设置)

    华为手机微信来信息没有声音怎么回事(华为手机微信来语音不响铃怎么设置)

  • 手机突然无法识别二维码(手机突然无法识别指纹怎么办)

    手机突然无法识别二维码(手机突然无法识别指纹怎么办)

  • 手提电脑为什么连接不上WIFI(手提电脑为什么连不上手机热点)

    手提电脑为什么连接不上WIFI(手提电脑为什么连不上手机热点)

  • qq可以查找以前删除的好友吗(qq可以查找以前加人的时间吗)

    qq可以查找以前删除的好友吗(qq可以查找以前加人的时间吗)

  • 微信夜晚功能在哪(微信夜晚功能怎么弄)

    微信夜晚功能在哪(微信夜晚功能怎么弄)

  • 网速太慢是路由器的问题吗(网速太慢是路由器老旧还是猫老旧)

    网速太慢是路由器的问题吗(网速太慢是路由器老旧还是猫老旧)

  • 怎么在目录前面加一页(怎么在目录前面加摘要)

    怎么在目录前面加一页(怎么在目录前面加摘要)

  • 转转聊天记录删除不了(转转聊天记录删了怎么找)

    转转聊天记录删除不了(转转聊天记录删了怎么找)

  • 快手直播能设几个管理(快手直播能设几个房间)

    快手直播能设几个管理(快手直播能设几个房间)

  • iphonexsmax单卡和双卡什么区别(iphonexsmax单卡版有什么不一样)

    iphonexsmax单卡和双卡什么区别(iphonexsmax单卡版有什么不一样)

  • 手机如何下载电视剧(手机如何下载电视剧全集)

    手机如何下载电视剧(手机如何下载电视剧全集)

  • 当前登录环境存在异常是什么意思(当前登录环境存在安全风险)

    当前登录环境存在异常是什么意思(当前登录环境存在安全风险)

  • 冯诺依曼计算机的基本原理(冯诺依曼计算机的基本思想)

    冯诺依曼计算机的基本原理(冯诺依曼计算机的基本思想)

  • 手机怎么去除网页广告(手机怎么去除网页安全警告)

    手机怎么去除网页广告(手机怎么去除网页安全警告)

  • 乐视手机怎么导出联系人(乐视手机怎么导入联系人)

    乐视手机怎么导出联系人(乐视手机怎么导入联系人)

  • 安卓手机投屏到电视机(安卓手机投屏到电脑)

    安卓手机投屏到电视机(安卓手机投屏到电脑)

  • word2007稿纸设置(word2016稿纸设置)

    word2007稿纸设置(word2016稿纸设置)

  • 淘宝闪退功能怎么突然用不了了(淘宝闪退怎么办?)

    淘宝闪退功能怎么突然用不了了(淘宝闪退怎么办?)

  • 小米9gps信号不稳定(小米9gps信号弱怎么处理)

    小米9gps信号不稳定(小米9gps信号弱怎么处理)

  • 苹果xr移动版和公开版区别(苹果xr移动版和全网版价格差多少)

    苹果xr移动版和公开版区别(苹果xr移动版和全网版价格差多少)

  • 华为p30pro会有5g吗(华为手机p30pro有5g)

    华为p30pro会有5g吗(华为手机p30pro有5g)

  • 苹果手机关闭什么功能省电(苹果手机关闭什么可以防止监控)

    苹果手机关闭什么功能省电(苹果手机关闭什么可以防止监控)

  • 细说前端打包发布后,浏览器缓存如何清理?其实只需要简单的webpack配置就行(前端打包发布)

    细说前端打包发布后,浏览器缓存如何清理?其实只需要简单的webpack配置就行(前端打包发布)

  • 属于印花税征税对象的是
  • 劳务报酬个人所得税税率表
  • 收到失业金返还什么意思
  • 通行费电子发票没有通行费字样
  • 现金流量表中购建固定资产怎么计算
  • 承兑汇票给别人时对方需要出具什么
  • 员工一次性补偿要缴纳个税吗
  • 建筑企业预收款开具不征税发票为什么要预缴
  • 终止销售关系怎么处理
  • 个体户购买发票需要什么资料
  • 购买商标权发生损失能税前扣除吗?
  • 预付装修费的会计分录
  • 研究开发费用加计扣除多少
  • 销项税没有进项税多
  • 小微企业1个点和3个点对纳税的影响
  • 虚开增值税发票不能忽略的三个点!
  • 银行支票怎么用
  • 外来原始凭证是指企业财会部门从外部购入的原始凭证
  • 补提以前年度摊销
  • 因为担保被起诉怎么办
  • 重装系统出现无效签名
  • 无法访问移动网络怎么办
  • 赠送产品如何计入成本
  • 租赁合同维修义务谁承担
  • PHP:mb_ereg_search_init()的用法_mbstring函数
  • php正则表达式实例
  • 电脑legacy是什么意思
  • mt-mon.exe
  • 单位房转卖
  • php redis实现秒杀思路
  • 行政事业性收费目录
  • 二手车过户需要带什么资料
  • 命令行查看ip地址
  • 金融工具减值的范围包括哪些?
  • php转换器
  • 微信小程序详细教程
  • 房地产代理公司资质证书
  • echo输出语句
  • 企业所得税营业收入包括什么
  • 分公司增值税可以放总公司一起缴纳吗
  • 所得税申报资产总额
  • discuz怎么使用
  • pythonjam怎么用
  • 零申报社保是否可以报销
  • 工业总产值和收入产值哪个大
  • 工会筹备金有优惠政策吗
  • 党建经费提取是上年度还是下年
  • 个人工资薪金如何零申报
  • 高新补助收入属于不征税收入吗
  • sql共享
  • 房企预收款如何缴纳企业所得税
  • 股东之间资金往来
  • 贷款保险费能否抵扣个税
  • 固定资产为什么不能直接计入费用
  • 人工费没有发票怎么办
  • 普通发票的开具是怎样?
  • 出口退税过期怎么处理
  • 工程施工中购入固定资产
  • 培训费用支出
  • sql2000删除
  • 关于植物的现代诗
  • 索尼vpcea200c笔记本
  • xp系统怎么调出任务管理器
  • ubuntu系统如何
  • windows不认u盘
  • linux查看硬件信息的命令
  • centos7.6忘记密码了怎么办
  • NPFMSG.exe - NPFMSG是什么进程 有什么用
  • mac book air安装
  • app录音功能开发
  • 详细解读退役军人优待政策
  • jquery dom对象
  • 单例 python
  • 安卓样式大全
  • Python for Informatics 第11章之正则表达式(二)
  • bootstrap要学到什么程度
  • Python编程中装饰器的使用示例解析
  • 督查局工作怎么样
  • 重庆市国家税务局电子税务局官网
  • 免教育费附加会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设