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

  • 淘宝推广方法详解,怎么利用QQ群和微信群(淘宝推广方法详细介绍)

    淘宝推广方法详解,怎么利用QQ群和微信群(淘宝推广方法详细介绍)

  • oppo隐私相册照片在哪里找(oppo隐私相册照片删除怎么恢复)

    oppo隐私相册照片在哪里找(oppo隐私相册照片删除怎么恢复)

  • 荣耀8x是不是华为手机(华为8x是华为荣耀8x吗)

    荣耀8x是不是华为手机(华为8x是华为荣耀8x吗)

  • ios无法下载app(ios无法下载app怎么办)

    ios无法下载app(ios无法下载app怎么办)

  • miui11怎么关闭底下搜索栏(小米怎么去掉底部)

    miui11怎么关闭底下搜索栏(小米怎么去掉底部)

  • 华为nova5怎么没有信号灯(为什么华为nova5手机没信号无服务)

    华为nova5怎么没有信号灯(为什么华为nova5手机没信号无服务)

  • 2ndf手机计算器里是什么键字(手机计算器20%)

    2ndf手机计算器里是什么键字(手机计算器20%)

  • 手机qq卸载后重新下载聊天记录还有吗(手机qq卸载后重新下载聊天记录怎么恢复)

    手机qq卸载后重新下载聊天记录还有吗(手机qq卸载后重新下载聊天记录怎么恢复)

  • qq白屏怎么回事(qq出现白屏什么情况)

    qq白屏怎么回事(qq出现白屏什么情况)

  • powerpoint概念功能和特点(介绍powerpoint的概念、功能及其特)

    powerpoint概念功能和特点(介绍powerpoint的概念、功能及其特)

  • 搜索历史怎么关(搜索历史怎么关闭不了)

    搜索历史怎么关(搜索历史怎么关闭不了)

  • 华为p30数字耳机功能(华为手机数字耳机)

    华为p30数字耳机功能(华为手机数字耳机)

  • 微信特别关注有什么用(vx特别关注)

    微信特别关注有什么用(vx特别关注)

  • 斐讯K2上不了网怎么解决(斐讯k2上不了网了)

    斐讯K2上不了网怎么解决(斐讯k2上不了网了)

  • 爱奇艺会员怎样给别人(爱奇艺会员怎样登录两个手机)

    爱奇艺会员怎样给别人(爱奇艺会员怎样登录两个手机)

  • 美图秀秀怎么去logo(美图秀秀怎么去水印logo)

    美图秀秀怎么去logo(美图秀秀怎么去水印logo)

  • 手机如何设置自动重拨(手机如何设置自动录音功能)

    手机如何设置自动重拨(手机如何设置自动录音功能)

  • 南方测绘gps使用教程(南方测绘gps使用说明)

    南方测绘gps使用教程(南方测绘gps使用说明)

  • 如何找车上的gps(怎么找车子上的gps)

    如何找车上的gps(怎么找车子上的gps)

  • 苹果6支持无线充电吗(苹果6支持无线网5G频率吗)

    苹果6支持无线充电吗(苹果6支持无线网5G频率吗)

  • r17有nfc功能如何开启(oppor17有nfc)

    r17有nfc功能如何开启(oppor17有nfc)

  • 黑鲨装机如何彻底删除(黑鲨系统怎么卸载)

    黑鲨装机如何彻底删除(黑鲨系统怎么卸载)

  • tiktok怎么下载(苹果tiktok怎么下载)

    tiktok怎么下载(苹果tiktok怎么下载)

  • ps4系统更新慢怎么解决(ps4更新版本太慢)

    ps4系统更新慢怎么解决(ps4更新版本太慢)

  • 华为碎屏险怎么查询(华为碎屏险怎么理赔)

    华为碎屏险怎么查询(华为碎屏险怎么理赔)

  • 小米手机熄屏时间设置在哪里(小米熄灭屏幕)

    小米手机熄屏时间设置在哪里(小米熄灭屏幕)

  • 小米9有面部解锁吗(小米9面部识别为什么不是直接打开)

    小米9有面部解锁吗(小米9面部识别为什么不是直接打开)

  • p30手机24小时怎么设置(p30如何调24小时)

    p30手机24小时怎么设置(p30如何调24小时)

  • webpack配置(webpack配置publicpath)

    webpack配置(webpack配置publicpath)

  • 自然人独资企业有公司章程吗
  • 当月增值税为负数
  • 个税系统如何增员
  • 离境退税政策文件
  • 租赁的房子
  • 实收资本不到账如何做凭证
  • 印花税的计税依据怎么算公式
  • 退货或者销毁处理
  • 计提结转本月城建税怎么做账?
  • 企业为什么用银行承兑汇票
  • 出口免税进项税额转出会计分录
  • 红字发票账务处理摘要
  • 进项大于销项的分录怎么写
  • 购买国债逆回购有股东限制
  • 公司注册资金未实缴可以申请破产吗
  • 小微企业所得税优惠政策
  • 与工程有关的差旅费是否可以计入在建工程呢?
  • 进项税和销项税借贷方向
  • 委托加工物资什么意思
  • 办理银行承兑汇票贴现的会计分录
  • 收到的产品返利怎么做账
  • 企业支付工商年费怎么查
  • 应交税费在借方是进项还是销项
  • 简易计税分包抵减
  • ∧oc电脑bios
  • 应用程序错误0x000000
  • 简单制作教程
  • php图片处理尺寸
  • 开办费的账务处理实例
  • mac配置node环境
  • php canal
  • 递归 php
  • pytorch1.9.0
  • php环境搭建教程
  • this.emit('input')
  • vue中webpack用来干啥
  • css网页布局代码
  • javascript基础书
  • 委托第三方收款合法吗
  • 企业合并发生的法律服务费影响利润总额吗
  • 已计提完的固定资产怎么做账
  • 汇兑损益在哪个表
  • 财政直接支付的概念
  • 房地产项目公司组织架构
  • 有哪些发票可以报销
  • 残保金是第二年交前一年的吗
  • 支票存根联丢失可以用回单代替么
  • 专票已认证但又不能抵扣
  • 小规模个人所得税税率表2023年
  • 外地工程预缴的工资怎么做账务处理
  • 内部往来科目设置在哪类下
  • 应付账款平账调到哪个科目
  • 工资计提和发放账务处理
  • 利息收入和利息费用是一个科目吗
  • 如何记账固定资产成本
  • sql常用命令使用方法
  • windows xp 2021 r3
  • 苹果mac系统复制粘贴不了
  • 进入注册表的快捷键
  • ubuntu下载安装QQ的命令
  • 电脑win8.1系统怎么样
  • linux ntp查看
  • cocos creator 动画制作
  • 遮罩层出现后怎么点击其他地方隐藏
  • Building Unity3D Plugins for Android
  • js怎么删除
  • 使用jquery实现的项目
  • 网卡流量怎么计算
  • js左值
  • 浅谈JavaScript事件的属性列表
  • android点击事件onclick用法
  • python默认方法
  • 个人出租住房增值税免税政策
  • 浙江国税qzzn
  • 增值税征税范围口诀
  • 12366纳税服务热线存在的问题
  • 地域税收收入增长原因
  • 江苏省国税局客服电话
  • 增值税即征即退申报表怎么填
  • 税务征收社保费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设