Listener监听器
监听器分类
- 第一类:监听请求域对象、会话域对象、全局域对象的创建与销毁
- 第二类:监听请求域对象、会话域对象、全局域对象的属性的创建、获取、销毁
- 第三类:监听会话域对象的value的绑定与解绑、活化与钝化
第一类监听器
请求域对象
创建:客户端向服务器发送请求时创建
销毁:客户端收到请求并返回响应后销毁
-
创建类
public class RequestServletListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent servletRequestEvent) { System.out.println("请求对象被销毁了" + servletRequestEvent); } @Override public void requestInitialized(ServletRequestEvent servletRequestEvent) { System.out.println("请求对象被创建了" + servletRequestEvent); } }
-
配置web.xml文件
<listener> <listener-class>ListenerClassOne.RequestServletListener</listener-class> </listener>
会话域对象
创建:当服务器使用到了session时创建
销毁:session的过期时间到了就销毁
-
创建类
public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { System.out.println("sessionCreated" + httpSessionEvent.getSession().getId()); } @Override public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { System.out.println("sessionDestroyed" + httpSessionEvent.getSession().getId()); } }
-
配置web.xml文件
<listener> <listener-class>ListenerClassOne.SessionListener</listener-class> </listener>
全局域对象
创建:当项目启动时创建
销毁:当项目结束时销毁
使用场景:
- 初始化与配置(在web.xml中配置<context-param>标签设置参数,通过contextInitialized()方法进行一次性的初始化工作)
- 资源清理(在contextDestroyed()中执行必要的清理工作)
-
创建类
public class ServletContextListener implements javax.servlet.ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("ServletContextListener contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("servletContextListener contextDestroyed"); } }
-
配置web.xml文件