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建立的時候,初始化方法就執行了。
使用場景
比如ServletContextListener的監聽器,監聽ServletContext對象的建立,而ServletContext表示整個Web容器,是以我們的初始化方法可以應用于加載資源檔案,銷毀方法應用于資源檔案的關閉。一般而言實際開發時使用不多,大多數情況下,架構幫我們封裝了Listner。
生命周期
開啟伺服器:
注意!
ServletContextListener
表示監聽ServletContext對象,當ServletContext建立時,Listener初始化。
Listener的初始化早與Servlet的初始化。
關閉伺服器:
Listener随着ServletContext對象的銷毀而銷毀,就像陪葬一樣,早于所有的Servlet先被銷毀。
注解配置
@WebListener
public class ListenerDemo1 implements ServletContextListener {}