關閉瀏覽器後Session就銷毀了嗎

2021-09-11 16:45:10 字數 1047 閱讀 9254

存在於瀏覽器上的唯一識別符號jsessionid(sessionid)消失了,但是伺服器中存放的sessionid並沒有立馬銷毀。

我們知道session是jsp的九大內建物件(也叫隱含物件)中的乙個,它的作用是可以儲存當前使用者的狀態資訊,初學它的時候,認為session的生命週期是從開啟乙個瀏覽器視窗傳送請求到關閉瀏覽器視窗,但其實這種說法是不正確的!當乙個session開始時,servlet容器會建立乙個httpsession物件,那麼在httpsession物件中,可以存放使用者狀態的資訊,servlet容器為httpsession物件分配乙個唯一識別符號即sessionid,servlet容器把sessionid作為一種cookie儲存在客戶端的瀏覽器 中使用者每次發出http請求時,servlet容器會從httpservletrequest物件中取出sessionid,然後根據這個sessionid找到相應的httpsession物件,從而獲取使用者的狀態資訊。

其實讓session結束生命週期,有以下兩種辦法:

我們知道session是存在於伺服器端的,當把瀏覽器關閉時,瀏覽器並沒有向伺服器傳送任何請求來關閉session,自然session也不會被銷毀,但是可以做一點努力,在所有的客戶端頁面裡使用js的window.onclose來監視瀏覽器的關閉動作,然後向伺服器傳送乙個請求來關閉session,但是這種做法在實際的開發中也是不推薦使用的,最正常的辦法就是不去管它,讓它等到預設的時間後,自動銷毀。那麼為什麼當我們關閉瀏覽器後,就再也訪問不到之前的session了呢?其實之前的session一直都在伺服器端,而當我們關閉瀏覽器時,此時的cookie是存在於瀏覽器的程序中的,當瀏覽器關閉時,cookie也就不存在了。

其實cookie有兩種:

而session的cookie是存在於瀏覽器的程序中,那麼這種cookie我們稱為會話cookie,當我們重新開啟瀏覽器視窗時,之前的cookie中存放的sessionid已經不存在了,此時伺服器從tpservletrequest物件中沒有檢查到sessionid,伺服器會再傳送乙個新的存有sessionid的cookie到客戶端的瀏覽器中,此時對應的是乙個新的會話,而伺服器上原先的session等到它的預設時間到之後,便會自動銷毀。

瀏覽器關閉後,Session就銷毀了嗎?

話題 當瀏覽器關閉後,session就銷毀了嗎?答案 存在於瀏覽器上的唯一識別符號jsessionid sessionid 消失了,但是伺服器中存放的sessionid並沒有立馬銷毀。分析 我們知道session是jsp的九大內建物件 也叫隱含物件 中的乙個,它的作用是可以儲存當前使用者的狀態資訊,...

瀏覽器關閉後,Session就銷毀了嗎?

當瀏覽器關閉後,session就銷毀了嗎?存在於瀏覽器上的唯一識別符號 jsessionid sessionid 消失了,但是伺服器中存放的sessionid並沒有立馬銷毀。我們知道session是jsp的九大內建物件 也叫隱含物件 中的乙個,它的作用是可以儲存當前使用者的狀態資訊,初學它的時候,認...

session和cookie 關閉瀏覽器後會怎樣?

session儲存在伺服器端,會一直存在,預設存在時間30分鐘 cookie儲存sessionid,伺服器會根據cookie中sessionid獲取session 兩種型別的cookie 不設定過期時間,則表示這個cookie生命週期為瀏覽器會話期間,只要關閉瀏覽器視窗,cookie就消失了。這種生...