session的鈍化機制以及Tomcat中兩種Session鈍化管理器
1,繫結到Session中的 物件有多種狀態,分別是 繫結 解除繫結 鈍化 活化。
繫結 是儲存,通過session.setattribute把物件儲存到session的物件當中,解除繫結,remove。鈍化就是將session持久化儲存裝置上。活化就是將session物件從一個儲存裝置上進行恢復。
2,session的鈍化機制:
session正常是放到伺服器記憶體當中的,當線上使用者很多時,session記憶體的開銷是巨大的,會直接影響web伺服器的效能,session的鈍化機制就會解決這個問題
session鈍化的本質就是把伺服器不經常使用的session物件暫時序列化到系統檔案,整個的過程是由伺服器自動完成的
3,Tomcat中兩種Session鈍化管理器
首先session鈍化機制是由sessionManager管理
1)第1種管理器是StandarManager
org.apache.catalina.session.StandarManager
當Tomcat伺服器關閉或者重啟時tomcat伺服器會將當前記憶體中的session物件鈍化到伺服器檔案系統中;
另一種情況是web應用程式被重新載入時,記憶體中的session物件也會被鈍化到伺服器的檔案系統中
2)Persistentmanager
org.apache.catalina.session.Persistentmanager
首先在鈍化的基礎上進行擴張,第一種情況如上面1,第2種如2,第3種情況,可以配置主流記憶體的session物件數目,將不長使用的session物件儲存到系統檔案或資料庫,當用時再重新載入
預設情況下,Tomcat提供2個鈍化驅動類
4,servlet規範:
2中介面:HttpServletBindingListener
HttpSessionActionListener
5,例項部分:
當物件實現Persistentmanager的介面之後,這個物件被session綁定了,這時會觸發事件,執行方法