對於Session會不會在關閉瀏覽器時失效這個問題...
阿新 • • 發佈:2019-01-22
通常情況下,我們所說的失效是指我們無法繼續對其進行利用。對此我們必須要清除自己口中所說的失效到底是什麼意思。
事實上,當我們關閉瀏覽器時,我們只是關閉了客戶端,而 session 是儲存在服務端上的,所以從理論上講,session 的消失和瀏覽器的關閉並沒有多大的關係。
再者,在我們平時的程式設計中可能會碰到這樣的問題:開啟瀏覽器測試後一段時間不去理會它,再次重新整理時發現 session 失效了。從這點也能得出問題的答案。tomcat 的預設的 session 儲存時間為30分鐘(好像是吧!),從第一次請求建立 session
開始計時,超時後不論瀏覽器是否關閉,session 都會失效。因此通常使用 session.setMaxInactiveInterval( ) 方法來設定 session 的超時時間。
通過以上兩點即可得出問題的答案!
session 是伺服器物件,每個 session 都由唯一的 sessionid 標識。sessionid 儲存於記憶體中Cookie,關閉瀏覽器時 sessionid 會隨記憶體中 Cookie 消失,而session 不會隨之消失。不過再次開啟瀏覽器時已經無法找到原有的 session了。另外,session 超時後會被清除。
面對這種問題我們可以與Cookie混用使 sessionid 傳遞迴伺服器,那麼 sessionid 便不會受瀏覽器作用,我們便可以很方便的使用 session 。