Session的生命周期

一、创建session对象

 当打开浏览器第一次访问jsp或servlet时,服务器端创建session对象,通过设置cookie的方式,把JSESSIONID存放到浏览器中,浏览器再次访问服务器时,自动携带JSESSIONID。访问其他资源时,访问的都是同一个session对象。

当服务器端设置request.getSeesion(false)时,不创建session对象

当服务端设置request.getSession(true)或者request.getSession()时,如果有session对象,则不创建新的session,如果没有session对象,则创建新session对象


特别注意:如果浏览器禁用Cookie,则服务器端每次都创建新的session对象

如果浏览器禁用Cookie,可以通过response.encodeURL("url")的方式,携带jsessionid

例如:http://localhost:8080/jspweb/session1.jsp;jsessionid=E6EF490A8B687F173251D0442AB90A19


二、销毁session对象

1、显示调用session.invalidate()方法

2、session过期 通过修改web.xml或者写代码session.setMaxInactiveInterval(30)设置过期时间



三、问题

是否关闭浏览器,session就销毁呢?

答案是否定的。如果将JSESSIONID通过像设置cookie的方式,持久化到浏览器,则关闭浏览器也不会销毁session