在web.xml中注册监听器
启动服务器时创建application(ServletContext)对象,监听器contextInitialized方法调用;关闭服务器时销毁application(ServletContext)监听器contextDestroyed方法调用。
context监听器,监听上下文对象,容器创建时生成,容器关闭时销毁。
实现第一个监听器
第一个监听器案例
步骤1:创建一个类并实现ServletContextListener接口(javax.servlet),并且实现了contextInitialized方法和contextDestroyed方法
步骤2:web.xml配置监听对象
实现了ServletContextListener接口的类,即创建了一个监听事件源为ServletContext的监听器,当服务器启动时,便会自动创建一个application对象,此时会调用此监听器的初始化方法.可以通过初始化方法的参数来对application对象做出一些操作.当服务器关闭,application对象销毁时,也会调用监听器的销毁方法,也可以通过参数来作出一些操作.初始化方法和销毁方法中的参数是ServletContextEvent的对象,因此可以通过参数来获取到application对象来对其操作. 实现了ServletRequestListener接口的类,即创建了一个监听事件源为ServletRequest的监听器,并且当用户发出请求时,此时会调用此监听器的初始化方法,可以通过初始化方法的参数作出一些操作,当request销毁时,也会调用监听器的销毁方法,也可以通过参数作出相应的操作.初始化方法和销毁方法中的参数是ServletRequestEvent的对象,因此可以通过参数来获取到request对象来对其操作. 实现了HttpSessionListener接口的类,即创建了一个监听事件源为HttpSession的监听器,并且当session创建时,此时会调用此监听器的初始化方法.可以通过初始化方法的参数作出一些操作,当session销毁时,也会调用监听器的销毁方法.也可以通过初始化方法的参数作出一些操作,初始化方法和销毁方法中的参数是HttpSessionEvent的对象,因此可以通过参数来获取到session对象来对其操作. 实现了ServletContextListener、ServletRequestListener、HttpSessionListener接口的监听器是监听域对象自身的创建与销毁的事件. ServletContext接口实现了ServletContextListener接口. ServletRequest接口实现了ServletRequestListener接口. HttpSession接口实现了HttpSessionListener接口.
监听器的实现:
① 实现ServletContextListener接口
② 在web.xml中部署监听
public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("contextDestroyed"); } public void contextInitialized(ServletContextEvent arg0) { System.out.println("contextInitialized"); } } @web.xml <listener> <listener-class>com.imooc.listener.FirstListener</listener-class> </listener> @输出: //Tomcat启动 contextInitialized //Tomcat关闭 contextDestroyed
@Listener---监听器的用法
1.编写java程序
public class FirstListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("contextDestroyed"); } }
2.配置web.xml
<listener> <listener-class>onetry.Listener.FirstListener</listener-class> </listener>
@FirstListener.java public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("contextDestroyed"); } public void contextInitialized(ServletContextEvent arg0) { System.out.println("contextInitialized"); } } @web.xml <listener> <listener-class>com.imooc.listener.FirstListener</listener-class> </listener> @输出: //Tomcat启动 contextInitialized //Tomcat关闭 contextDestroyed