Web---Listener---鈍化與活化
阿新 • • 發佈:2019-02-09
HttpSessionActivationListener
- 實現此介面的JavaBean,可以感知自己被活化(從硬碟到記憶體)和鈍化(從記憶體到硬碟)的過程。
- 如果需要同時儲存Session中的JavaBean則JavaBean也要實現Serializable序列化介面。
- 實現此介面的JavaBean與HttpSessionBindingListener一樣,不必配置到web.xml中。
要實現此功能,必須要先配置以下資訊:
<Context path="/myProj" docBase="D:/programfiles/projects/MyProj/WebRoot"> <!-- 配置會話的持久化 --> <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true" maxActiveSessions="1" minIdleSwap="120" maxIdleSwap="180" maxIdleBackup="5" maxInactiveInterval="1800"> <Store className="org.apache.catalina.session.FileStore" directory=“儲存目錄"> </Store> </Manager> </Context>
本次測試執行環境是Tomcat8.5,該版本不需要配置,鈍化的檔案就在當前專案的執行目錄中,當然要修改位置可以通過上面的模板進行配置。
運用場景
當專案已經投入運營時,遇到維護時需要重啟伺服器,而有些資訊是儲存在使用者的session中,如果不進行鈍化使用者的一些資訊存在丟失的可能。
測試過程
- 多次開啟新的瀏覽器視窗,並記錄SESSIONID。
- 使用shutdown.bat關閉tomcat應用。
- 觀察指定的目錄下是否存在*.session檔案。
- 觀察是否為關閉tomcat之前的同一個Session。
- 一般情況下,PersistentManager持久化Session
- HttpSessionActivationListener只做為監聽類,監聽自己是否鈍化或是活化。