admin管理员组文章数量:1023903
session失效的原因
session的原理
在了解原因之前,需要知道一个很重要的知识点
-
session是基于cookie实现的
-
当浏览器向服务器发送数据的时候,每次都会携带cookie,
session会话开始的时候,服务器会从浏览器传过来的cookie中查找JSessionId的值
并和服务器中存储session对象的map表的key进行比较 -
如果cookie中没有JSessionId,说明这是第一次会话,
服务器会创建一个session对象,并保存到Map表的value中,key保存session的唯一性id
同时,服务器会将session对象的唯一Id保存到cookie的JsessionId对应的值中,并发送给浏览器。 -
当浏览器再次访问服务器时,会将cookie中的JsessionId发送过来,服务器依据 JsessionId的值找到对应的session对象。
从而保证了用户的会话状态
session失效的原因
- 创建session后,session将会创建一个cookie,名为JSESSIONID,值为当前session的id
- 注意:此时,cookie中保存JSESSIONID的时间是默认的-1,
即,关闭浏览器,cookie的JSESSIONID失效 - 所以,再次打开浏览器时,虽然服务器的session仍然有效,但是,cookie的JSESSIONID失效
session 并不是随着浏览器的关闭而关闭的
session只会随着其生命周期结束或者强制销毁
可以通过下面这种方法解决
//1.创建cookie对象
//Cookie是可以覆盖的,如果重复写入同名的Cookie,那么将会覆盖之前的Cookie。
Cookie cookie=new Cookie("JSESSIONID",session.getId());//覆盖
//2.持久化存储,设置cookie存活时间[保存在硬盘中的时间]
cookie.setMaxAge(1*60*60*24);//参数单位是秒,在硬盘保存1天,60*60*24
//3.发送Cookie对象
response.addCookie(cookie);
- 但,通常情况下,很少被用到
- 通常利用cookie实现免密登录,替代这个过程
session失效的原因
session的原理
在了解原因之前,需要知道一个很重要的知识点
-
session是基于cookie实现的
-
当浏览器向服务器发送数据的时候,每次都会携带cookie,
session会话开始的时候,服务器会从浏览器传过来的cookie中查找JSessionId的值
并和服务器中存储session对象的map表的key进行比较 -
如果cookie中没有JSessionId,说明这是第一次会话,
服务器会创建一个session对象,并保存到Map表的value中,key保存session的唯一性id
同时,服务器会将session对象的唯一Id保存到cookie的JsessionId对应的值中,并发送给浏览器。 -
当浏览器再次访问服务器时,会将cookie中的JsessionId发送过来,服务器依据 JsessionId的值找到对应的session对象。
从而保证了用户的会话状态
session失效的原因
- 创建session后,session将会创建一个cookie,名为JSESSIONID,值为当前session的id
- 注意:此时,cookie中保存JSESSIONID的时间是默认的-1,
即,关闭浏览器,cookie的JSESSIONID失效 - 所以,再次打开浏览器时,虽然服务器的session仍然有效,但是,cookie的JSESSIONID失效
session 并不是随着浏览器的关闭而关闭的
session只会随着其生命周期结束或者强制销毁
可以通过下面这种方法解决
//1.创建cookie对象
//Cookie是可以覆盖的,如果重复写入同名的Cookie,那么将会覆盖之前的Cookie。
Cookie cookie=new Cookie("JSESSIONID",session.getId());//覆盖
//2.持久化存储,设置cookie存活时间[保存在硬盘中的时间]
cookie.setMaxAge(1*60*60*24);//参数单位是秒,在硬盘保存1天,60*60*24
//3.发送Cookie对象
response.addCookie(cookie);
- 但,通常情况下,很少被用到
- 通常利用cookie实现免密登录,替代这个过程
版权声明:本文标题:关闭浏览器后,再打开浏览器,session失效的原因分析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1742567966a1981953.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论