session 销毁之后浏览器发请求, 为什么还有session?

田叶清 发布于 2013/05/14 16:09
阅读 2K+
收藏 0

用户点退出之后, 调用 invalidate() 方法销毁 session, 但是如果后退页面再刷新, session又会生成. 如果是退出后复制已经登录页面的地址粘贴到浏览器中这时就不能访问已经登录的页面, 跳转到登录页面, 说明没有session.

我之前的理解是session保存在服务器中, 客户端只是有个sessionId保存在cookie中.

如果session销毁之后浏览器发过来有sessionId的一个请求, 难道还会让session重生?还是服务器session没销毁掉?还是我的理解根本就大错特错?

加载中
0
不是小白
不是小白
session.remove();
田叶清
田叶清
为什么invalidate()没用啊. 什么时候用invalidate(), 什么时候用remove呢?
0
不是小白
不是小白
调用该方法 会清空所有已定义的session 而不是清空全部session的值 你是怎么用的?
田叶清
田叶清
不懂,回去再看看
不是小白
不是小白
额,就是 invalidate() 这个方法
0
逝水fox
逝水fox

不知道你判断用户登陆状态是依据的是什么,正常情况用户点退出,不是要销毁session,而是去除session里面的登陆标识。

如果你的请求不带sessionId,或者对应的session对象在服务器上不存在,request.getSession() 默认会重新创建一个新的。

田叶清
田叶清
我回去再试试
0
Cavalier
Cavalier
sessionid是可以用过滤器干掉的
Cavalier
Cavalier
这个可以用过滤器来解决哦
御风林海
御风林海
@田叶清 session清空了,再发请求,又建立session了,你要写个规则,比如说:正确登录后才建立session,用安全框架之类的东西去控制吧
Cavalier
Cavalier
lianggesession是不一样的。 web项目貌似都会加上一个sessionid
田叶清
田叶清
用过滤器干掉,那session还有什么用?
0
爪哇小贩
爪哇小贩
回到登陆页面是服务器产生的新session,加个session监听器就可以看出两个session是不同的
0
写给木木夕的话
写给木木夕的话
这个问题解决了吗?麻烦问一下怎样解决的呀?
返回顶部
顶部