java web之監聽器Listener初識

1.八種Listener介紹

8種Listener,分別用於監聽Session、context、request等的創建與銷燬、屬性變化等。另有一個Listener能夠監聽存放在session中的對象。共有6種event。
以下三種用於監聽Session,context,request的創建與銷燬:
HttpSessionListener:監聽Session的創建與銷燬。創建Session時執行sessionCreated(HttpSessionEvent se)方法。超時或者執行session.invalidate()時執行sessionDestroyed(HttpSessionEvent se)方法。該Listener可用於收集在線者信息。

ServletContextListener:監聽context的創建與銷燬。context代表當前的Web應用程序。服務器啓動或者熱部署war包時執行contextInitialized(ServletContextEvent event)方法。該Listener可用於啓動時獲取web.xml裏配置的初始化參數。

ServletRequestListener:監聽request的創建與銷燬。用戶每次請求request都會執行requestInitialized(ServletRequestEvent event)方法。request處理完畢自動銷燬前執行requestDestroyed(ServletRequestEvent event)方法。注意如果一個HTML頁面內含有多個圖片,則請求一次HTML頁面可能會觸發多次request事件。

以下三種用於監聽Session,context,request的屬性變化。
HttpSessionAttributeListener,HttpContextAttributeListener,HttpRequestAttributeListener.
當向被監聽對象中添加、更新、移除屬性時,會分別執行XXXAdded(),XXXReplaced,XXXRemoved()方法,XXX分別代表Session,context,request

以下兩種監聽Session內的對象
HttpSessionBindingListener:當對象被放到session裏時執行valueBound(HttpSessionBindingEvent event)方法。當對象被從Session裏移除時執行valueUnbound(HttpSessionBindingEvent event)方法。對象必須實現該Listener接口

HttpSessionActivationListener:服務器關閉時,會將Session裏的內容保存到硬盤上,這個過程叫做鈍化。服務器重新啓動時,會將Session內容從硬盤上重新加載。當Session裏的對象被鈍化時會執行sessionWillPassivate(HttpSessionEvent se)方法,當對象被重新加載時執行sessionDidActivate(HttpSessionEvent se)。對象必須實現Listener接口。



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