監聽器

 

監聽器

      監聽器就是一個實現特定接口的普通java程序,這個程序專門用於監聽另一個java對象的方法調用或屬性改變,當被監聽對象發生上述事件後,監聽器某個方法將立即被執行。

Servle監聽器

在Servlet規範中定義了多種類型的監聽器,它們用於監聽的事件源分別爲 ServletContext, HttpSession 和 ServletRequest 這三個域對象。

Servlet規範針對這三個對象上的操作,又把這多種類型的監聽器劃分爲三種類型。
監聽三個域對象創建和銷燬的事件監聽器
監聽域對象中屬性的增加和刪除的事件監聽器
監聽綁定到 HttpSession 域中的某個對象的狀態的事件監聽器。(查看API文檔)

監聽servletContext域對象創建和銷燬

ServletContextListener 接口用於監聽 ServletContext 對象的創建和銷燬事件。
當 ServletContext 對象被創建時,激發contextInitialized (ServletContextEvent sce)方法
當 ServletContext 對象被銷燬時,激發contextDestroyed(ServletContextEvent sce)方法。

編寫 Servlet 監聽器

 和編寫其它事件監聽器一樣,編寫servlet監聽器也需要實現一個特定的接口,並針對相應動作覆蓋接口中的相應方法。
和其它事件監聽器略有不同的是,servlet監聽器的註冊不是直接註冊在事件源上,而是由WEB容器負責註冊,開發人員只需在web.xml文件中使用<listener>標籤配置好監聽器,web容器就會自動把監聽器註冊到事件源中。
一個 web.xml 文件中可以配置多個 Servlet 事件監聽器,web 服務器按照它們在 web.xml 文件中的註冊順序來加載和註冊這些 Serlvet 事件監聽器。

監聽HttpSession域對象創建和銷燬

HttpSessionListener接口用於監聽HttpSession的創建和銷燬
創建一個Session時,sessionCreated(HttpSessionEvent se) 方法將會被調用。
銷燬一個Session時,sessionDestroyed (HttpSessionEvent se) 方法將會被調用。

(此處複習session對象,寫多個servlet都去getSession,看session的創建)
Session域對象創建和銷燬的時機創建:用戶每一次訪問時,服務器創建session
銷燬:如果用戶的session 30分鐘沒有使用,服務器就會銷燬session,我們在web.xml裏面也可以配置session失效時間

監聽三個域對象屬性變化

Servlet規範定義了監聽 ServletContext, HttpSession, HttpServletRequest 這三個對象中的屬性變更信息事件的監聽器。
這三個監聽器接口分別是ServletContextAttributeListener, HttpSessionAttributeListener ServletRequestAttributeListener
這三個接口中都定義了三個方法來處理被監聽對象中的屬性的增加,刪除和替換的事件,同一個事件在這三個接口中對應的方法名稱完全相同,只是接受的參數類型不同。

 

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