IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 一文详解Cookie,Session以及浏览器与Cookie,Session的底层联系 -> 正文阅读

[Java知识库]一文详解Cookie,Session以及浏览器与Cookie,Session的底层联系

Cookie:

  1. 翻译过来就是饼干的意思
  2. Cookie是服务器用于保存键值对的一种技术,保存的是一段文本信息。
  3. 客户端有了Cookie之后,每次请求都会发送给服务器
  4. 每个Cookie的大小不能超过4KB

创建Cookie

Cookie cookie = new Cookie (“key”,“Value”);
resp.addCookie(Cookie);

服务器获取Cookie

req.getCookies();
//这里获取的其实是一个Cookie数组

获取的是以一个Cookie数组,但是并不是相对于map那样可以直接获取键值,需要挨个进行遍历

Cookie值的修改

有两种方法:

  1. 首先创建一个和原来那个Cookie同名的Cookie键,然后在构造器中赋予新的值,最后通过resp.addCookie(Cookie)加入Cookie
  2. 首先挨个进行遍历每一个Cookie,调用setValue方法赋予新的Cookie值,通过resp.addCookie(Cookie)方法保存加入Cookie

Cookie的生命控制

setMaxAge()方法

  1. 正数,表示在指定的秒数后面过期
  2. 负数,表示浏览器一关,Cookie就会被删除(默认值是-1)
  3. 0,表示马上删除Cookie
    Cookie通过有效路径去过滤掉哪些Cookie可以发送给服务器

Session

  1. Session是一个接口
  2. 是一个会话,是用来维护一个客户端和一个服务器之间关联的一种技术
  3. 每个客户端都有自己的一个Session会话
  4. Session会话中,我们经常用来保存用户登录之后的信息

Session创建以及获取

req.getSession()
第一次调用是创建Session会话
之后调用的时候都是获取前面创建好的Session会话对象

isNew()判断是不是刚创建出来的Session
true
false

每一个Session都会有一个ID值,这个ID是唯一的,getId()是得到Session的会话id值

Session生命周期的控制

public void setMaxInactiveInterval(int interval) 设置 Session 的超时时间(以秒为单位),超过指定的时长,Session
就会被销毁。
值为正数的时候,设定 Session 的超时时长。
负数表示永不超时(极少使用)
public int getMaxInactiveInterval()获取 Session 的超时时间
public void invalidate() 让当前 Session 会话马上超时无效。
Session 默认的超时时长是多少!
Session 默认的超时时间长为 30 分钟。
因为在 Tomcat 服务器的配置文件 web.xml 中默认有以下的配置,它就表示配置了当前 Tomcat 服务器下所有的 Session
超时配置默认时长为:30 分钟。

30

如果说。你希望你的 web 工程,默认的 Session 的超时时长为其他时长。你可以在你自己的 web.xml 配置文件中做
以上相同的配置。就可以修改你的 web 工程所有 Seession 的默认超时时长

浏览器与Cookie,Session的底层联系

  1. 首先客户端没有任何的Cookie信息,向服务器请求数据
  2. 服务器收到请求(服务器端有一个服务器内存,在服务器内存中存储着创建过的Session对象,每一个Session对象都会有一个ID值),创建一个Session对象,返回给浏览当前创建Session的ID值
  3. 浏览器收到之后就会马上创建一个Cookie,这个Cookie是当前Session对象的Cookie值,这也说明了之前为什么说Cookie对应的是一个文本信息。

为什么浏览器关闭,Session就不存在了?

Session在创建之后,是使用Cookie来进行存储转发的,浏览器一关闭Cookie不是保存在浏览器端吗?为什么会丢失了?
其实Cookie是是分为一种在线的Cookie和本地的Cookie,之前说的就是在线Cookie,一个Cookie是对应一个线程,当浏览器关闭之后这个进程就关闭了,之后浏览器就找不到这个Session的ID就会重新在创建一个,原来的那个Session对象其实还存在,直到自己的时间结束。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 11:57:15  更:2022-04-04 11:59:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:31:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码