1.Web監聽器是Servlet規範中定義的一種特殊類,用於監聽ServletContext、HttpSession、ServletRequest等域對象的創建與銷燬事件
2.Web監聽器的主要用途
1)統計在線人數和在線用戶
2)系統啓動時加載初始化信息
3)統計網站訪問量
4)跟Spring結合
[*企業中應用]
3.Web監聽器創建
1)實現Web接口類(ServletContextListener)
2)在web.xml中進行配置(listener)
4.監聽器分類(按監聽的事件劃分)
1)監聽域對象自身的創建和銷燬的事件監聽器
ServletContext——ServletContextListener
HttpSession——HttpSessionListener
ServletRequest——ServletRequestListener
contestDestroyed
ServletContext對象的創建和銷燬?
創建:
銷燬:
2)監聽域對象中屬性的增加和刪除的事件監聽器
ServletContext——ServletContextAttributeListener
HttpSession——HttpSessionAttributeListener
ServletRequest——ServletRequestAttributeListener
attributeAdded,attributeRemoved,attributeReplaced
3)監聽綁定到HttpSession域中的某個對象的狀態的事件監聽器
HttpSession中對象的狀態:綁定,解除綁定,鈍化(持久化),活化
HttpSessionBindingListener valueBound(綁定),valueUnbound(解除綁定)
HttpSessionActivationListener sessionWillPassivate(鈍化),sessinDidActivate(活化)
步驟:對象bean實現HttpSessionBindingListener ,HttpSessionActivationListener,Serializable接口並實現相應方法,將bean對象放到session attribute中。
5.Session的創建和銷燬
創建:打開瀏覽器
銷燬:
1)關閉服務器
2)關閉瀏覽器一段時間之後
3)不關閉瀏覽器,session超時
web.xml <session-config> <session-timeout> 以分鐘爲單位
6.Session鈍化
正常情況下session處於服務器內存中,一些不常使用的session會被序列化,當需要使用時,再被反序列化到內存中
Session鈍化機制由SessionManager管理
Tomcat兩種session管理器——Persistentmanager,StandardManager