如何在服務器重新啓動後繼續使用session

session表示客戶端與服務器的一次會話,每一個新的瀏覽器連接上服務器後就是一個新的session。需要注意,對於每一個已連接到服務器的用戶,如果重新啓動服務器,則這些用戶再次發出請求實際上表示的都是一個新連接的用戶,服務器會爲每個用戶重新分配一個新的session id,之前已經分配的session id就會消失,那麼是否有一種處理機制可以讓這些session繼續保存,等待服務器重新啓動後繼續使用呢?

可以通過序列化的方式保存session繼續使用。

在tomcat可以通過配置server.xml將每一個用戶的session在服務器關閉時序列化到存儲介質(可以是文件或數據庫)上保存,這樣即使服務器重新啓動,也可以通過反序列化的方式,從指定的存儲介質上反序列化每一個session對象。

server.xml配置如下:



以上配置完成後,即使服務器中間關閉,一個用戶的session也可以通過此配置進行反序列化的恢復。

關閉服務器後會在之前配置目錄下生成一個命名形式爲:“sessionid.session”的文件,如下圖:
















參考:《名師講壇——Java Web開發實戰經典基礎篇(JSP、Servlet、Struts、Ajax)》/李興華,王月清編著


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章