写这篇文章,纯粹是为了防止一些不明意义者被互联网上眼花缭乱答案所误导(为什么?因为我在网上看了相关的解释,不看还好,越看越晕,当然有人说,还是有很多解释是正确,okay)!
进入正题,本来想省事直接在网上找相关的解释的,但是看了以后,唉,还是自己看API吧。
1、
API上解释:
HttpSession | getSession() Returns the current session associated with this request, or if the request does not have a session, creates one. |
HttpSession | getSession(boolean create) Returns the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session. |
getSession() :无参数时,意思为有就不创建,没有就创建(简单点好,说太多反而会晕)。
getSession(boolean create) :参数为true时,实际上等于无参数的,意思如上。
参数为false时:不管session是否存在,都不创建,即没有就为空,有就返回。
注:创建是指新建一个新的对象
2、invalidate()
主要是对session的注销,通常用于用户登录情况的判断(也很多应用于同一账号不能重复登录)
今天无意想起来这个问题,然后自己也测试了一下,当然也少不了到网上找找相关答案了,答案很多,但是。。。。。
不废话了,直接说下吧。
当使用这个方法时,session实际上彻底注销的,即指当你在通过request.getsession()时,如果没有参数或参数为true时,返回的session已经不在是原来的session了(自己已通过得到sessionId的方式查看,重新新建了),如果参数为false时,返回的为null。