自己设定到期韶光
当然除了以上的修正办法外,我们也可以在程序中自己设定 session 的生命周期,通过 session.setMaxInactiveInterval(int); 来设定 session 的最大不活动韶光,单位为秒。
HttpSession session = req.getSession();session.setMaxInactiveInterval(5);12
当然我们也可以通过 getMaxInactiveInterval(); 方法来查看当前 Session 工具的最大不活动韶光。
或者我们也可以通过 session.invalidate(); 方法让 session 急速失落效。

session.invalidate();1
关闭浏览器
session 的底层依赖 cookie 实现,由于不同用户访问做事器要判别到底是利用哪个 session,以是当用户第一次访问做事器的时候每每会把一个 session id 通过 cookie 存储到用户端,并且该 cookie 的有效韶光为关闭浏览器,从而 session 在浏览器关闭时也相称于失落效了(由于没有 session id 再与之对应)。如下图,关闭后再打开,重新给浏览器分配了个 session id。
须要把稳的是这里只是 cookie 失落效了,你再访问相称于做事器把你当成了新用户,又给你创建了一个 session,并没有把之前的 session 工具销毁。
想要获取更多Java干系的学习资料,加微信:lezijie007 暗号:999 你须要的通通有哦关闭做事器当非正常关闭做事器时,session 销毁;当正常关闭做事器时,session 将被序列化到磁盘上,在事情空间 work 目录下的 SESSION.ser 文件中,如果工具被保存在了 session 中,做事器在关闭时要把工具序列化到硬盘,这个工具就必须实现 Serializable 接口,下次启动做事时,自动加载到内存。如下图,正常关闭后可以看到文件夹中多了一个 SESSIONS.ser 文件,再次启动做事器则文件消逝。
扩展~Cookie的销毁
从图中除了看到 Cookie 的名称和内容外,我们还须要关心一个信息,到期韶光,到期韶光用来指定该 cookie 何时失落效。默认为当前浏览器关闭即失落效。我们可以手动设定 cookie 的有效韶光(通过到期韶光打算),通过 setMaxAge(int expiry); 方法设定 cookie 的最大有效韶光,以秒为单位。
大于 0 的整数,表示存储的秒数;若为负数,则表示不存储该 cookie;若为 0,则删除该 cookie。负整数:cookie 的 maxAge 属性的默认值便是 -1,表示只在浏览器内存中存活,一旦关闭浏览器窗口,那么 cookie 就会消逝。正整数:表示 cookie 工具可存活指定的秒数。当生命大于 0 时,浏览器会把 Cookie 保存到硬盘上,就算关闭浏览器,就算重启客户端电脑,cookie 也会存活相应的韶光。零:cookie 生命即是 0 是一个分外的值,它表示 cookie 被作废!也便是说,如果原来浏览器已经保存了这个 Cookie,那么可以通过 Cookie 的 setMaxAge(0) 来删除这个 Cookie。 无论是在浏览器内存中,还是在客户端硬盘上都会删除这个 Cookie。