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

  • 小红书如何建群(小红书如何建群2022)

    小红书如何建群(小红书如何建群2022)

  • 华为nova5的广角怎么开(华为nova5广角模式怎么开)

    华为nova5的广角怎么开(华为nova5广角模式怎么开)

  • QQ音乐怎么下载mv(qq音乐怎么下载mp3格式的歌曲到u盘)

    QQ音乐怎么下载mv(qq音乐怎么下载mp3格式的歌曲到u盘)

  • vivo外部来源安装如何关闭验证(vivo外部来源应用安装)

    vivo外部来源安装如何关闭验证(vivo外部来源应用安装)

  • 当窗体中的内容太多无法放在一面中显示时(当窗体中的内容太多)

    当窗体中的内容太多无法放在一面中显示时(当窗体中的内容太多)

  • 华为激活日期怎么看(华为新机激活日期)

    华为激活日期怎么看(华为新机激活日期)

  • 华为畅享10e怎么隐藏应用(华为畅享10e怎么扫描wifi二维码)

    华为畅享10e怎么隐藏应用(华为畅享10e怎么扫描wifi二维码)

  • k20pro充电器多少w(k20 pro充电器)

    k20pro充电器多少w(k20 pro充电器)

  • win10安装后无法引导(Win10安装后无法启动 代码0001)

    win10安装后无法引导(Win10安装后无法启动 代码0001)

  • 智能卡无效是什么情况(智能卡无效是什么意思啊)

    智能卡无效是什么情况(智能卡无效是什么意思啊)

  • 怎样判断qq对方拉黑(怎样判断qq对方屏蔽)

    怎样判断qq对方拉黑(怎样判断qq对方屏蔽)

  • 台式电脑闪屏是什么原因(台式电脑闪屏是什么原因,怎么解决)

    台式电脑闪屏是什么原因(台式电脑闪屏是什么原因,怎么解决)

  • 淘宝托管运营有用吗(白沟淘宝运营托管)

    淘宝托管运营有用吗(白沟淘宝运营托管)

  • 怎么更改软件图标(怎么更改软件图标和名字)

    怎么更改软件图标(怎么更改软件图标和名字)

  • vivo手机照片删除找回(vivo手机照片删除后怎样彻底删除)

    vivo手机照片删除找回(vivo手机照片删除后怎样彻底删除)

  • 手机无sim卡怎么办(手机无sim卡怎么回事)

    手机无sim卡怎么办(手机无sim卡怎么回事)

  • 照片上国旗是怎么弄的(照片上国旗是怎么制作的)

    照片上国旗是怎么弄的(照片上国旗是怎么制作的)

  • 荣耀20i怎么返回上一页面(荣耀20i怎么返回上一步)

    荣耀20i怎么返回上一页面(荣耀20i怎么返回上一步)

  • 华为mate30会有50倍吗(华为mate30会有黑边吗)

    华为mate30会有50倍吗(华为mate30会有黑边吗)

  • 打印机怎么加墨粉(打印机怎么加墨 步骤视频)

    打印机怎么加墨粉(打印机怎么加墨 步骤视频)

  • 电脑微信收钱有语音吗(电脑微信收钱有记录吗)

    电脑微信收钱有语音吗(电脑微信收钱有记录吗)

  • 交易猫付款了能退款吗(交易猫付款了能追回吗)

    交易猫付款了能退款吗(交易猫付款了能追回吗)

  • 一加7多少w快充(一加7多少w快充电)

    一加7多少w快充(一加7多少w快充电)

  • ios录音在哪(ios手机录音在哪里)

    ios录音在哪(ios手机录音在哪里)

  • 如何查看谁连接了wifi(如何查看谁连接了网络)

    如何查看谁连接了wifi(如何查看谁连接了网络)

  • uc浏览器私密空间在哪(uc浏览器私密空间被和谐怎么恢复)

    uc浏览器私密空间在哪(uc浏览器私密空间被和谐怎么恢复)

  • 安卓微信备注怎么居中(安卓微信备注怎么删除)

    安卓微信备注怎么居中(安卓微信备注怎么删除)

  • 城建附加的计税依据
  • 国债 企业债
  • 固定资产中的动态投资包括
  • 机械租赁属于什么分类
  • 个税代扣代缴手续费返还 申请
  • 电子记账凭证需要划线吗
  • 简易征收的老项目是指什么时候
  • 一般纳税人企业是什么意思
  • 企业资金运动包括哪几个环节
  • 销售研发试制样板图
  • 承兑汇票的贴现费用怎么计算
  • 招待费的进项
  • 医院的重要性
  • 低价股权转让是利空还是利好
  • 未支付的款项如何做账
  • 委托加工收回后直接销售的消费税
  • 税局会例行检查吗
  • 营改增后房产税计入什么科目
  • 旅游业适用差额征税政策时如何开具发票?
  • 免征增值税项目销售额含税吗
  • 团建费用是什么意思
  • 水利建设基金从铁路建设基金港口建设费收入中提取5%
  • 筹建期间发生的收入
  • 生产的废料怎么做账
  • cpu游戏性能天梯图2023
  • 小规模纳税人销售自己使用过的固定资产税率
  • 企业应纳税所得额计算公式
  • 为什么说人与人的悲欢不相通
  • 长期待摊费用是当月摊销还是次月摊销
  • 股派发红利是涨还是跌
  • 房贷贷款利息计算
  • 酒店原材料内部分析
  • php chr函数
  • 其他综合收益的借贷方向
  • fold命令 限制文件列宽
  • 电子税务局购票员变更
  • 企业支付给其他单位劳务费时需要代扣代缴个税吗
  • 其他应收款个人挂账很大该怎么处理
  • 无法在common files上设置新的所有者
  • mysql优化命令
  • 异常凭证一定要转出吗
  • 员工公交费补贴怎么入账
  • 汇算清缴后取得上一年发票
  • 公司在建厂房图片大全
  • 年金现值的公式是怎么推导出来的
  • 现金日记账如何填写
  • 代金券的利弊有哪些方面
  • 怎么查企业适用的会计准则
  • 日记账对方科目代表什么意思
  • 怎么填写专用发票信息
  • 税务登记财务负责人条件
  • 银行存款日记账与银行对账单之间的核对属于
  • 税务局代开发票作废可以申请退税吗?
  • 普通日记账如何记账
  • 企业是否必须建立巡察制度
  • sql server的go
  • centos 7.0截屏快捷键有冲突该怎么更换?
  • 怎么在bios关闭软驱
  • mac的dns怎么设置最快
  • centos7修复安装
  • fsrremos.exe
  • 如何自定义wifi名称
  • win7系统电脑开不了机
  • win7还原电脑系统的步骤
  • win10天气预报设置
  • 常见错误类型
  • 批处理命令实例
  • Linux makefile 和shell文件相互调用实例详解
  • unity 3d代码
  • sequelize-cli
  • unity shader ao
  • jQuery Checkbox 全选 反选的简单实例
  • shell中的-n
  • Unity3D游戏开发(第2版)pdf
  • 3、BluetoothChat之BluetoothChatService.java
  • Linux开发基于Qt的Android应用指定调试设备
  • 湖北省电子税务局操作指南
  • 广州契税补贴2022政策
  • 银行收取手续费可以抵扣进项税额吗
  • 怎样打印护士资格证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设