1:在第一次客戶端連接至服務器的時候會新建一個session對象,以后再使用同一個客戶端訪問服務的時候都是用同一個session對其服務,但是關閉瀏覽器,下次再 訪問的時候會創建一個新的session對象,這里的關閉是值得關閉瀏覽器的所有窗口,而不是關閉某一個選項卡!
2:web服務器會不會在瀏覽器關閉之后自動銷毀session對象呢?
? ? ?測試表明,就算你關閉瀏覽器后session也不會自動銷毀的,不關你是把瀏覽器窗口關閉了還是當前連接服務器的tab關閉了都不會自動銷毀session,因為http協議是無狀態的,服務器不知道客戶端被關閉了,他只會在30分鐘后再銷毀這個session,當下一個打開瀏覽器的時候cookie中JSESSIONID字段已經不存在了,所以再連接服務器的話會新建一個session,上一個session被廢棄了。依據此是否有了做 “記住我” 的思路,只要在客戶端持久化cookie,下一次瀏覽器訪問的時候把持久化的信息帶上不就可以 “記住我” 了嗎?事實上可以使用如下代碼記住我
3:session默認生效的時候是30分鐘以內,
只要從session產生開始30分鐘內斷斷續續有請求連接到服務器,session都不會被銷毀,并且會一直都存在,即使30分鐘后也不會銷毀重建,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 但是,
如果距離上一次請求查過30分鐘的話session就會自動銷毀,或者在你下一次請求的時候銷毀重建。
4:session的創建和銷毀可以使用HttpSessionListener監聽
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?如果你看到這篇文章有什么想討論的或者想要測試代碼的可以加群 486646649