Session在浏览器关闭之后的状态

版权声明:seowen的Java小本子,欢迎转载! https://blog.csdn.net/weixin_42697074/article/details/88903946

通常情况下,我们所说的失效是指我们无法继续对其进行利用。对此我们必须要清楚自己口中所说的失效到底是什么意思。

事实上,当我们关闭浏览器时,我们只是关闭了客户端,而 session 是存储在服务端上的,所以从理论上讲,session 的消失和浏览器的关闭并没有多大的关系。

再者,在我们平时的编程中可能会碰到这样的问题:打开浏览器测试后一段时间不去理会它,再次刷新时发现 session 失效了。从这点也能猜出问题的答案。tomcat 的默认的 session 存储时间为30分钟,从第一次请求创建 session 开始计时,超时后不论浏览器是否关闭,session 都会失效。因此通常使用 session.setMaxInactiveInterval( )方法来设置 session 的超时时间。

session 是服务器对象,每个 session 都由唯一的 sessionid 标识。sessionid 存储于内存中Cookie,关闭浏览器时 sessionid 会随内存中 Cookie 消失,而session 不会随之消失。不过再次打开浏览器时已经无法找到原有的 session了。另外,session 超时后会被清除。

面对这种问题我们可以与Cookie混用使 sessionid 传递回服务器,那么 sessionid 便不会受浏览器作用,我们便可以很方便的使用 session 。另外还有URL重写也可以实现。

session、sessionid、Cookie 的关系参考可 http://www.cnblogs.com/fnng/archive/2012/08/14/2637279.html

猜你喜欢

转载自blog.csdn.net/weixin_42697074/article/details/88903946