Servlet 監聽器Listner
阿新 • • 發佈:2018-11-09
定義:
專門用於對其他物件身上發生的事件或狀態改變進行監聽和相應處理的物件,當被監視的物件發生情況時,立即採取相應的行動。
Servlet 規範為每種事件監聽器都定義了相應的介面,它用於監聽 web 應用程式中的 ServletContext, HttpSession 和 ServletRequest 等域物件的建立與銷燬事件。
介面實現類:
編寫的事件監聽器程式只需實現這些介面
public class HelloServletContextListner implements ServletContextListener, ServletRequestListener, HttpSessionListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContext 物件被建立。 " + sce.getServletContext()); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext 物件被銷燬。" + sce.getServletContext()); } @Override public void sessionCreated(HttpSessionEvent se) { System.out.println("HttpSession 被建立。"); } @Override public void sessionDestroyed(HttpSessionEvent se) { // TODO Auto-generated method stub System.out.println("HttpSession 被銷燬"); } @Override public void requestDestroyed(ServletRequestEvent sre) { // TODO Auto-generated method stub System.out.println("ServletRequest 被銷燬"); } @Override public void requestInitialized(ServletRequestEvent sre) { // TODO Auto-generated method stub System.out.println("ServletRequest 被建立"); } }
宣告註冊:
Servlet事件監聽器需要在 web 應用程式的 web.xml 檔案中進行註冊
<!-- 配置監聽 --> <listener> <listener-class>com.demo.listener.HelloServletContextListner</listener-class> </listener>
應用場景:
1.ServletContextListener 是最常用的 Listener, 可以在當前 WEB 應用被載入時對當前 WEB 應用的相關資源進行初始化操作: 建立 Spring 的 IOC 容器,
2.HttpSessionListener,統計當前線上人數列表