天天看點

Listener監聽器JavaWeb學習筆記-Listener

JavaWeb學習筆記-Listener

什麼是Listner

監聽器用于監聽web應用中某些對象、資訊的建立、銷毀、增加,修改,删除等動作的發生,然後作出相應的響應處理。當範圍對象的狀态發生變化的時候,伺服器自動調用監聽器對象中的方法。常用于統計線上人數和線上使用者,系統加載時進行資訊初始化,統計網站的通路量等等。

分類

按監聽的對象劃分,可以分為

  • ServletContext對象監聽器
  • HttpSession對象監聽器
  • ServletRequest對象監聽器

    按監聽的事件劃分

  • 對象自身的建立和銷毀監聽器
  • 對象中屬性的建立和消除的監聽器
  • session中的某個對象的狀态變化的監聽

入門案例

建立一個類,實作ServletContextListener接口,複寫初始化和銷毀方法。

public class ListenerDemo1 implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ListenerDemo1對象建立了");
    }


    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ListenerDemo1對象銷毀了");
    }
}
           

注冊監聽,隻需要配置class,讓Tomcat啟動時被ClassLoader加載進記憶體,即可正常使用。

<listener>
    <listener-class>com.kaikeba.course06.ListenerDemo1</listener-class>
</listener>
           

ServletContext建立的時候,初始化方法就執行了。

Listener監聽器JavaWeb學習筆記-Listener

使用場景

比如ServletContextListener的監聽器,監聽ServletContext對象的建立,而ServletContext表示整個Web容器,是以我們的初始化方法可以應用于加載資源檔案,銷毀方法應用于資源檔案的關閉。一般而言實際開發時使用不多,大多數情況下,架構幫我們封裝了Listner。

生命周期

開啟伺服器:

注意!

ServletContextListener

表示監聽ServletContext對象,當ServletContext建立時,Listener初始化。

Listener的初始化早與Servlet的初始化。

Listener監聽器JavaWeb學習筆記-Listener

關閉伺服器:

Listener随着ServletContext對象的銷毀而銷毀,就像陪葬一樣,早于所有的Servlet先被銷毀。

Listener監聽器JavaWeb學習筆記-Listener

注解配置

@WebListener
public class ListenerDemo1 implements ServletContextListener {}