Java:session中的invalidate()的作用是什么呢?求解

Posted shoshana-kong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:session中的invalidate()的作用是什么呢?求解相关的知识,希望对你有一定的参考价值。

手工杀会话。
会话失效有2种可能:超时和手工杀会话。手工杀方便省时间,程序员都爱用。

比如我做一个程序需要登录,中间访问的页面有会话控制,如果没有登录则跳转到登录页面,退出时清会话信息。

这是有两个选择:把session数据清空,或直接杀会话。建议直接杀会话,方便。
如果退出时不清会话,对方点浏览器后退,依然无需登录可以正常访问站点。
 
追问
就是说这个东西的最大用处是作退出功能时直接用session.invalidate()将session清空就行了以免有遗漏,如果想手动清空某项session,也可以赋null,是这样吗?
追答
session.invalidate()是杀掉会话

赋值null,是清空会话,很可能是一个陷阱。
2者是不同的概念。session是一个容器,里面可以存数据。以在食堂吃饭为例:session是碗,赋值null想当于空碗,数据相当于碗里的饭,invalidate相当于把碗摔了()。

赋值null是个陷阱,开发不要用。

 

以上是关于Java:session中的invalidate()的作用是什么呢?求解的主要内容,如果未能解决你的问题,请参考以下文章

SESSION.INVALIDATE()

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

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

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

如何有效地破坏 Java Servlet 中的“会话”?

使用 invalidate-session="false" 时如何获取 Spring Security 自动注销时间?