会话技术 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/594295/

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

(0)

大家都在看

  • 【转】京东评价系统海量数据存储设计

    概述 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计…

    Java 2023年6月7日
    080
  • 《拉钩课程 — 分布式技术原理与实战》学习笔记

    1、分布式系统是用来解决集中式架构的性能瓶颈问题,其核心是可扩展性,其特点包括:不出现单点故障、无状态等。依照 CAP 理论,分布式系统只能在 CP 和 AP 之间做取舍。 2、B…

    Java 2023年6月7日
    081
  • Java如何使用实时流式计算处理?

    我是3y,一年 CRUD经验用十年的 markdown程序员👨🏻‍💻常年被誉为职业八股文选手 最近如果拉过 austin项目代码的同学,可能就会发现多了一个 austin-stre…

    Java 2023年6月9日
    075
  • 一起来学习android自定义控件3——边缘凹凸的View

    最近做项目的时候遇到一个卡劵的效果,由于自己觉得用图片来做的话可以会出现适配效果不好,再加上自己自定义view方面的知识比较薄弱,所以想试试用自定义View来实现。先看设计图效果 …

    Java 2023年6月13日
    0106
  • Spring AOP

    AOP简介: 面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 *作用:在不惊动原始设计的基础上为其进行功能增强。 AOP核心概念 (1)Aspec…

    Java 2023年6月6日
    078
  • Python 中MATLABspline函数的替代函数

    调用 scipy模块,其中有对应的函数 UnivariateSpline。与MATLAB中 spline函数不同的是,这个函数返回值是一个插值函数,而非插值结果。 import s…

    Java 2023年6月9日
    083
  • OpenLDAP 服务端配置(二): 允许用户自行修改密码

    修改slapd.conf文件(默认安装在/etc/openldap下) 2.slapd.conf文件在database config前面加上两个字段 slapd.conf配置文件末…

    Java 2023年5月30日
    065
  • Spring Cloud Finchley版-02-构建分布式应用

    服务消费者 & 提供者 本书使用服务提供者与服务消费者来描述微服务之间的调用关系。下表解释了服务提供者与服务消费者。 表-服务提供者与服务消费者 [td] 名词 定义 服务…

    Java 2023年5月30日
    066
  • SpringCloud 上

    Spring Cloud 是在 Spring Boot 基础上构建的, 用于检查分布式系统构建的工具集. 工具集包括 配置管理, 服务发现, 智能路由,断路器,为代理和控制总线. …

    Java 2023年5月30日
    060
  • MYSQL8-快速生成表结构(用于生成文档)

    各种工具都有,没有特别趁手的。不如自己用sql处理。 SELECT column_name AS CODE, CASE WHEN column_comment IS NULL OR…

    Java 2023年6月9日
    071
  • java 递归实现树形结构的两种实现方式

    1.情景展示 树形结构,和我们平常所触及到的无限级菜单,是同一个道理。 所谓树形结构,我们可以将其理解为:树根或者树冠,都可以无限分叉下去。 现有一张表,需要对表中数据进行分级查询…

    Java 2023年5月29日
    0112
  • springboot使用@data注解,减少不必要代码

    一、idea安装lombok插件 二、重启idea三、添加maven依赖 12345四、书写一个实体类import lombok.Data; @Datapublic class M…

    Java 2023年5月30日
    068
  • 容器-promQL语法之内存指标

    在容器内进行内存监控的常用指标包括 1、 内存中的cache用量 2、 常驻的内存用量 3、 交换分区用量 4、 内存的总占用量 由于container_memory_usage_…

    Java 2023年5月30日
    089
  • 使用idea操作git(ssh协议)

    问题 我们发现,使用IDEA上的git功能,当使用ssh协议出现了可以commit但无法push和pull的问题,经过测试发现原因是Could not read from rems…

    Java 2023年6月15日
    095
  • Java网络编程

    一、概述 计算机网络 计算机网络是指将 地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在 网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现 …

    Java 2023年6月5日
    079
  • 一元函数积分学的概念与计算

    一元函数积分学的概念与计算 定积分:黎曼积分(\int_a^bf(x)=\sum),曲边梯形面积和的极限 不定积分:(F'(x)=f(x)) 变限积分:(F(x)=\int_a^x…

    Java 2023年6月7日
    066
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球