什么是Listener监听器
Listener监听器是JavaWeb三大组件之一,JavaWeb的三大组件为:Servlet、Filter、Listener
LIstener监听器是JavaEE的一个接口–规范(ServletContextListener)
监听器的作用是为了监听某种事务的变化、然后通过回调函数反馈给客户做一些相应的处理
ServletContextListener监听器
作用:用于监听ServletContext(Servlet上下文对象)的创建和销毁
ServletContext对象在Web工程启动的时候被创建(启动Tomcat服务器时被启动),在Web工程销毁时被销毁(Tomcat服务器关闭时被销毁)
Servlet被创建后就会调用ServletContextListener监听器中的contextInitialized(ServletContextEvent sce);方法
Servlet被销毁后就会调用ServletContextListener监听器中的contextDestoryed(ServletContextEvent sce);方法
实现步骤
-
创建一个类用于实现ServletContextListener
public class MyListener implements ServletContextListener { }
-
实现ServletContextListener中的两个方法
public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("Servlet被创建了,赶紧过来做事了"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("Servlet被销毁了,回去休息吧"); } }
-
在web.xml中配置Listener标签
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.carl.controller.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> <listener> <listener-class>com.carl.listener.MyListener</listener-class> </listener> </web-app>