会话技术 cookie 和 Session(1)

Cookie
Cookie 属于客户端会话技术,它是服务器发送给浏览器的小段文本信息,存储在客户端浏览器的内存中或硬盘上。当浏览器保存了Cookie 后,每次访问服务器,都会在HTTP请求头中将这个Cookie 回传给服务器

Cookie 的分类
Cookie分为两种
1.会话级别Cookie (默认):Cookie 保存到浏览器的内存中,浏览器关闭则Cookie 失效。
2.持久的Cookie :Cookie 以文本文件的形式保存到硬盘上。
Cookle 的工作流程
Cookie 是基于HTTP协议实现的,工作流程如下。
1.客户端浏览器访问服务器时,服务器通过在HTTP响应中增加SetCookie 字段,将数据信息发送给浏览器
2.浏览器将Cookie 保存在内存中或硬盘上
3.再次请求该服务器时,浏览器通过在HTTP请求消息中增加Cookie 请求头字段,将Cookie 回传给Web服务器服务 器根据Cookie 信息跟踪客户端的状态。

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中

通过 Servlet 设置 Cookie 包括三个步骤:

  1. 创建一个 Cookie 对象([ ] ( ) = , ” / ? @ : ; )这里面红色都不要用
Cookie cookie = new Cookie("key","value");
  1. 设置最大生存周期,默认是-1表示该cookie保留到浏览器关闭为止
//保留时长24h
cookie.setMaxAge(60*60*24);
  1. 发送 Cookie 到 HTTP 响应头
response.addCookie(cookie);

常用方法:

cookie.getName() //获取cookie的名字

cookie.getValue() //获取cookie中保存的值

cookie.setValue() //设置/修改cookie中保存的值(没有setName方法,因为cookie的名字无法修改)

cookie.setMaxAge() //设置cookie的最大生存时间

举例: 添加cookie (一个cookie只能标识一种信息,所以至少要有name和value)

Cookie c = new Cookie("username","ww");// 新建一个Cookie对象
c.setMaxAge(24*60*60);                    // 设置过期时间1天,以秒为单位
response.addCookie(c);                    // 保存cookie到客户端

删除cookie

Cookie cookie = new Cookie("username","lis");// 新建Cookie
cookie.setMaxAge(0);                           // 设置生命周期为0,表示将要删除
response.addCookie(cookie);                    // 执行添加后就从response里删除了

修改cookie

Cookie cookie = new Cookie("username","zs");// 新建Cookie
cookie.setMaxAge(24*60*60);                    // 设置生命周期1day
response.addCookie(cookie);                    // 执行添加后就从response里覆盖修改了

删除和修改 都只需要新建一个value不一样的同名Cookie,但是删除需要多设置一个maxAge。除开新建的Cookie的value、maxAge,其余的都得一样,不然不起作用,不会覆盖。完整的案例可以参考菜鸟教程的。

会话技术 cookie 和 Session(1)

Original: https://www.cnblogs.com/Aons0812/p/16538231.html
Author: Aons谦
Title: 会话技术 cookie 和 Session(1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644143/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JAVA WEB 中的编码分析

    ServletPath和PathInfo中的中文 QueryString中的中文 public void service(org.apache.coyote.Request req…

    技术杂谈 2023年7月24日
    081
  • java XML标记语言

    可扩展标记语言( Extensive Markup Language),标签中的元素名是可以自己随意写,可拓展是相对于html来说 标记语言:由一对尖括号括起来 用来当做配置文件 …

    技术杂谈 2023年6月21日
    0117
  • centos检测http网站的脚本

    centos检测http网站的脚本 同时把结果导出到>/tmp/1.txt 可以安装screen yum install screen 在另外一个窗口执行这个脚本 scree…

    技术杂谈 2023年5月31日
    085
  • login方法访问不到解决过程

    背景:由于项目登录模块之前使用传统的字符验证码,干扰又太严重,经常会有输入十次以上才能蒙对的情况。于是提出让改为滑动验证码(斗鱼,B站等等)。如图所示: 原有的: 要改的: 这个实…

    技术杂谈 2023年7月24日
    098
  • Bag标签之中的一个行代码实行中文分词实例2

    例1 : 分词(返回以逗号隔开每一个词带上引號的词组。gap=”,”,quotes=”‘”或 quotes=’&#822…

    技术杂谈 2023年5月30日
    0113
  • cocos 碰撞系统

    前面的话 本文将简要介绍 Cocos Creator 中的碰撞系统,Cocos Creator 内置了一个简单易用的碰撞检测系统,支持圆形、矩形以及多边形相互间的碰撞检测 编辑碰撞…

    技术杂谈 2023年5月30日
    0120
  • SCRUM官方权威指南

    posted @2022-04-18 21:32 HammerZe 阅读(26 ) 评论() 编辑 Original: https://www.cnblogs.com/48xz/p…

    技术杂谈 2023年6月21日
    091
  • BPMN & DMN 流程驱动 应用程序 数据流异常 代码检测异常 测试用例

    发现基于 BPMN 的流程驱动应用程序中的数据流异常 | 第 36 届 ACM 应用计算研讨会论文集https://dl.acm.org/doi/10.1145/3412841.3…

    技术杂谈 2023年6月1日
    0134
  • Game Engine Architecture 5

    【 Game Engine Architecture 5】 1、Memory Ordering Semantics These mysterious and vexing prob…

    技术杂谈 2023年5月31日
    075
  • 今天发布的一个程序一直提示Microsoft.mshtml的强名称验证失败

    软件发布后,在客户的电脑上一再提示缺失该文件或强名称验证失败, 本机的Microsoft.mshtml就两个文件, 拷到客户的机子上,均出同样提示。 后在网络上找个这个dll,该版…

    技术杂谈 2023年7月11日
    0108
  • 字节跳动-财经-校招内推

    【团队介绍】 我们为字节跳动生态的抖音电商、直播、教育、健康、内容付费等场景服务,依托字节跳动的科技能力和产品,为用户提供更好的支付、消费金融、保险等金融服务体验。科技创新,普惠大…

    技术杂谈 2023年5月31日
    0109
  • java本地缓存

    由于服务器、数据库、网络等资源有限,无法支撑越来越多的请求与计算量,所以将一部分数据放在缓存中,以此减小薄弱环节的计算量和请求流程。 网站中缓存的应用场景:1:可以缓存整个页面的h…

    技术杂谈 2023年7月11日
    068
  • PWN学习总结

    一、栈溢出原理 什么是栈溢出?栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。程序在运行过程中,为了临时存取数据的需要,一般都要分…

    技术杂谈 2023年7月11日
    092
  • 深入理解Apollo核心机制之灰度发布——创建灰度

    概述 ApolloPortal创建灰度后都做了什么呢?Apollo是如何维护主版本与灰度版本关系的呢? 其实创建灰度非常简单,可以看到下图中”Cluster&#8221…

    技术杂谈 2023年7月25日
    093
  • Uri: getLastPathSegment()

    该函数可用于截取URI当中的文件名。比如一段 URI如下: content://media/external/file/61585 调用该函数得到的结果为: 61585 也就是简化…

    技术杂谈 2023年6月1日
    0105
  • cc/animation

    core/animation This directory contains the main thread animation engine. This implements t…

    技术杂谈 2023年5月31日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球