监听器
Listener(监听器):可以 监听 JavaWeb 中的三大域对象:HttpServletRequest、HttpSession、ServletContext (创建和销毁),一旦被监视的对象发生相应的变化,应该采取相应的操作。
类型:
ServletContextListener
HttpSessionListener
ServletRequestListener
Listener 的应用场景:历史访问次数、统计在线人数、系统启动时初始化配置信息等。
ServletContextListenner
监听器在 Web 开发中使用的比较少,监听器的使用方式都差不多,这里使用的是监听器中使用率最高的 ServletContextListenner。使用这个监听器可以在项目启动和销毁的时候做一些事情。例如,在项目启动的时候加载配置文件。
a. 使用步骤
创建一个普通类,实现 ServletContextListenner。
重写抽象方法:
监听 ServletContext 创建;
监听 ServletContext 销毁。
配置:
web.xml 版本
package com.test01.javaweb01.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class LitenerTest01 implements ServletContextListener {
// 监听器ServletContext
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext已经创建");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext已经销毁了");
}
}
<listener>
<listener-class>com.test01.javaweb01.listener.LitenerTest01</listener-class>
</listener>
注解版本
package com.test01.javaweb01.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ListenerTest02 implements ServletContextListener {
// 监听ServletContext创建
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext 已经创建了...");
}
// 监听ServletContext销毁
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext 已经销毁了....");
}
}