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