1、当浏览器关闭后,服务器不关闭,两次获取到的Session是否是同一个?
默认情况下肯定不是同一个Session,因为浏览器关闭后带着Session响应头信息的Cookie就消失了
但是我们可以让Cookie持久化保存一段时间,这段时间内不管浏览器怎么关都没事
Cookie cookie = new Cookie("JSESSIONID", session.getID());
cookie.setMaxAge(60*60); //一小时内不管怎么关闭浏览器都可以获取到同一个session
2、浏览器不关闭,关闭服务器,两次获取到的session是同一个嘛?
不是同一个,因为服务器关闭后session对象就被销毁了,但是要确保服务器的数据不会丢失,那么如何确保数据不会丢失呢?
答:要完成对session的钝化与活化
session的钝化:
在服务器正常关闭前,将session对象序列化到硬盘上
session的活化:
在服务器启动后,将session文件转化为内存中的session对象
注意:Tomcat服务器自动完成对session的钝化与活化,而IDEA不行,但是没事,我们后期大多用Tomcat部署项目,所以不用担心这个问题。(Are you sure?)
3、session什么时候被销毁?
1、服务器关闭
2、session对象调用invalidate( )方法就会自己销毁自己
3、session默认失效时间:30分钟
但是可以自己修改失效时间,找到web.xml配置文件然后找到以下代码然后修改数字即可
<session-config>
<session-timeout>30</session-timeout>
</session-config>