HTTP會話監聽(HttpSession)信息,有4個接口可以進行監聽
(1)HttpSessionListener接口
HttpSesionLintener接口實時監聽HTTP會話創建、銷毀。HttpSessionListener接口提供以下兩個方法:
A.sessionCreated(HttpSessionEvent event)方法,通知正在收聽的對象,session已經被加載或初始化
B.sessionDestroyed(HttpSessionEvent event)方法,通知 正在收聽的對象,session已經被載出。
(HttpSessionEvent類的主要方法是getSession(),可以使用該方法返回一個session對象)
(2)HttpSessionActivationListener接口
HttpSessionActivationListener接口實現監聽HTTP會話active和passivate。HttpSessionActivationListener接口提供了以下3個方法
A.attributeAdd(HttpSessionBindingEvent event)方法:當有對象加入session是通知正在收聽的對象。
B.attributeReplaced(HttpSessionBindingEvent event)方法:當在session的范圍有對象取代另一對象的時候,通知正在收聽的對象
C.attributeRemoved(HttpSessionBindingEvent event)方法:當有對象從session的范圍移除時,通知正在收聽的對象。(HttpSessionBindingEvent類主要有3個方法:getName(),getSession(),getValues())
(3)HttpBindingListener接口
HttpBindingListener接口實現監聽HTTP會話中對象的綁定信息。他是唯一不需要在web.xml中設定Listener的。HttpBindingListener接口提供了以下兩個方法:
A.valueBound(HttpSessionBindingEvent event)方法:當有對象加入 session的范圍時會自定調用。
B.valueUnBound(HttpSessionBindingEvent event)方法:當有對象從session的范圍移除時會自動調用。
(4)HttpSessionAttributeListener接口
HttpSessionAttributeListener接口實現 監聽HTTP會話中屬性的設置請求。HttpSessionAttributeListener接口提供了以下兩個方法:
A.sessionDidActivate(HttpSessionEvent event)方法:通知正在收聽的對象,他的session已經變為了有效狀態
B.sessionWillPassivate(HttpSessionEvent event)方法:通知正在收聽的對象,他的session已經變為了無效狀態。
Servlet2.4規范中增加了一個技術,就是可以監聽客戶端的請求,一旦能夠獲取到客戶端的請求,就可以對請求進行統一的處理。要實現客戶端請求和請求參數設置的監聽需要實現兩個接口:
1.ServletRequestListener接口
ServletRequestListener接口提供了以下兩個方法:
A.requestInitialized(ServletRequestEvent event)方法:通知正在收聽的對象,ServletRequest已經被加載並初始化
B.requestDestroyed(ServletRequestEvent event)方法:通知正在收聽的對象,ServletRequest對象已經載出即關閉
2.ServletRequestAttributeListener接口:
ServletRequestAttibuteListener接口提供以下3個方法:
A.attributeAdded(ServletRequestAttributeEvent event)方法:當有對象加入request的范圍時,通知正在收聽的對象。
B.attributeReplaced(ServletRequestAttributeEvent event)方法:當在request的范圍內有對象取代另一個對象的時候,通知正在收聽的對象。
C.attributeRemoved(ServletReqquesstAttributeEvent event)方法:當 有對象從request的范圍移除時,通知正在收聽的對象。