2012-03-25 104 views
3

會話失效意味着會話銷燬。因此,如果會話被銷燬,則表示服務器無法識別先前訪問過的客戶端。現在,它會爲該客戶端創建一個新的會話ID。什麼是會話失效?

這是對嗎?如果錯誤告訴我正確的程序。

回答

4

調用HttpSession.invalidate()只是清除綁定到它的任何對象並將其標記爲無效,所以如果您嘗試修改它,則會引發異常。

一旦會話失效,放置在客戶端的Cookie中的SessionID也將無效,並且在創建新的會話對象時必須創建新的會話ID。所以新的會話將有一個新的ID。

這是有用的來處理例如登錄/註銷。會話應始終在登錄時失效,以幫助防止會話修復攻擊

+0

會發生什麼對應於該失效的會話ID – user1286481 2012-03-26 16:58:27

+0

的數據沒什麼特別的,因爲會話被破壞,它不能從會話中訪問。如果會話是保持對其引用的唯一對象,則它有資格進行垃圾回收 – 2012-03-26 17:46:20

0

Yes, absolutely right。使會話無效將會話標記爲無效,並將被銷燬。如果客戶端帶有無效的會話ID,則會創建一個新會話。

+0

當我們退出瀏覽器時會話變量會發生什麼變化? – user1286481 2012-03-26 16:11:14

+0

服務器在某些空閒超時值後會使其失效。您也可以在web.xml中配置會話超時值。 – 2012-03-26 16:35:07

+0

什麼發生的所有屬性我已經設置session.setAttribute他們變得清除或什麼;或者它與這個主題無關,意味着它們將保持不變 – shareef 2014-12-09 13:16:27

0

session.inValidate():

如果我們登錄到Gmail,然後在服務器端,服務器都會創建會話對象

如果我們呼籲session.inValidate()方法意味着我們退出因爲會話對象被服務器銷燬。

相關問題