session.invalidate()和session.abandon()有啥不同,该如何选择?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session.invalidate()和session.abandon()有啥不同,该如何选择?相关的知识,希望对你有一定的参考价值。

参考技术A session.abandon();当前会话不再有效,同时会启动新的会话
session.invalidate();注销当前这个session对象
session.clear()就是把session对象中的所有数据删除了
....
参考技术B 你从哪儿看到 abandon 的,
http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html

这个文档上到 Java EE 7 还没有这个方法啊。不过我们从文档上看到 invalidate() 会清理 session 中的绑定,也就是 session 的对象会 remove 掉,我相信它还是触发 HttpSession 相关的 Listener。那么 abandon() 会不会也这样操作呢?很可能 abandon() 不触发 listener,你可以做个实验,或找到正确的 API 文档链接来查看,我不知道你的版本是什么,也不知道相应的 API 链接。追问

非常感谢 查了半天才发现这个方法是.asp页面的

本回答被提问者采纳

2018.8.4session的removeAttribute()和invalidate()的区别

session的removeAttribute()和invalidate()的区别

session.invalidate()是销毁跟用户关联session,例如有的用户强制关闭浏览器,而跟踪用户的信息的session还存在,可是用户已经离开了。
虽然session 生命周期浏览默认时间30分,但是在30分钟内别的用户还可以访问到前一个用户的页面,需销毁用户的session。
session.removeAttribute()移除session中的某项属性。
在spring例子中宠物商店的注销登录的代码:
request.getSession().removeAttribute("userSession");
// 注销用户,使session失效。
request.getSession().invalidate();







以上是关于session.invalidate()和session.abandon()有啥不同,该如何选择?的主要内容,如果未能解决你的问题,请参考以下文章

session.invalidate()和session.abandon()有啥不同,该如何选择?

SESSION.INVALIDATE()

如何在JSP页面关闭或者返回别的页面后清除session中的值

session如何实现登出

清除session信息

java中清空session