关闭浏览器后仍然保留JSESSIONID的方法

您所在的位置:网站首页 cookie在关闭浏览器时会不会被清除 关闭浏览器后仍然保留JSESSIONID的方法

关闭浏览器后仍然保留JSESSIONID的方法

2023-12-21 04:46| 来源: 网络整理| 查看: 265

遇到的问题

我的系统是通过cookie和session来保存登录信息,登录后再关闭浏览器就发现登录信息不存在了。比较关闭浏览器前后的cookie,发现JSESSIONID消失了。

解决方法

我们可以手动为cookie中添加JSESSIONID信息,此时不管你的浏览器是否关闭,cookie中都会携带JSESSION信息,

这样的话,只要session没有消亡, 服务器就一定能够找到对应的session,而不会重新建立一个新的session。

//登录成功后,手动添加cookie,保存JSESSIONID信息 Cookie cookie = new Cookie("JSESSIONID", session.getId()); //300年后过期(永久有效) cookie.setMaxAge(60 * 60 * 24 * 30 * 12 * 300); //设置cookie 和 session生命周期同步. response.addCookie(cookie);

在springboot中,如果要设置session永不过期,可以在application.yml文件中加上:

server: servlet: session: timeout: 0 原理

session是一个作用域对象,在访问任意jsp页面时,默认就会创建一个session对象(可通过设置取消自动创建)。

通常使用session保存一些信息,用于在同一站点的各个数据之间共享数据。

1、当第一次访问页面时,会创建一个叫做JSESSIONID(session编号),这是一个字符串,会保存在一个cookie中.

2、再次访问该页面时,会查询该JSESSIONID是否存在,如果存在,直接使用;提过不存在,创建新的JSESSIONID。

3、保存该JSESSIONID的cookie会随着浏览器的关闭自动销毁,所以关闭浏览器,session就会失效。

参考: Session和Cookie Cookie&Session - 关闭浏览器后, 如何保证服务端未过期的sessionid还能使用 关闭浏览器后再次访问session 保证是同一个sessionid



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3