监听器的作用是监听Web容器的有效期事件,因此它是由容器管理的。利用Listener接口监听在容器中的某个执行程序,并且根据其应用程序的需求做出适当的响应。
Listerner接口 | 描述 |
---|---|
ServletContextListener | 监听ServletContext对象的创建、删除 void contextInitialized(ServletContextEvent var1);Web容器创建初始化时执行 void contextDestroyed(ServletContextEvent var1);Web容器销毁时执行 |
ServletContextAttributeListener | 监听ServletContext对象属性的添加、删除和修改操作 void attributeAdded(ServletContextAttributeEvent var1);当有对象加入上下文范围时执行 void attributeRemoved(ServletContextAttributeEvent var1);当有对象从上下文的范围移除时执行 void attributeReplaced(ServletContextAttributeEvent var1);在上下文的范围内有对象取代另一个对象时执行 |
HttpSessionListener | 监听会话创建、销毁 void sessionCreated(HttpSessionEvent var1);HttpSession初始化时执行 void sessionDestroyed(HttpSessionEvent var1);HttpSession销毁时执行 |
HttpSessionActivationListener | 监听会话的active和passivate void sessionWillPassivate(HttpSessionEvent var1);通知正在监听的对象,它的session已经变为有效状态 void sessionDidActivate(HttpSessionEvent var1);通知正在监听的对象,它的session已经变为无效状态 |
HttpSessionAttributeListener | 监听会话中属性的设置请求 void attributeAdded(HttpSessionBindingEvent var1);当有对象加入session范围时执行 void attributeRemoved(HttpSessionBindingEvent var1);当有对象从session的范围移除时执行 void attributeReplaced(HttpSessionBindingEvent var1);在session的范围内有对象取代另一个对象时执行 |
HttpSessionBindingListener | 监听会话中对象的绑定信息 void valueBound(HttpSessionBindingEvent var1);当有对象加入session的范围时会被自动调用 void valueUnbound(HttpSessionBindingEvent var1);当有对象从session的范围内移除时会被自动调用 |
ServletRequestListener | 监听客户端请求 void requestInitialized(ServletRequestEvent event);ServletRequest初始化时执行 void requestDestroyed(ServletRequestEvent event);ServletRequest销毁时执行 |
ServletRequestAttributeListener | 监听请求参数 void attributeAdded(ServletRequestAttributeEvent var1);有对象加入request的范围时执行 void attributeRemoved(ServletRequestAttributeEvent var1);当有对象从request的范围移除时执行 void attributeReplaced(ServletRequestAttributeEvent var1);在request的范围内有对象取代另一个对象时执行 |
Event类 |
---|
ServletContextEvent |
ServletContextAttributeEvent |
HttpSessionEvent |
HttpSessionBindingEvent |
ServletRequestEvent |
ServletRequestAttributeEvent |
示列
@WebListener
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("容器创建成功!");
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("容器已经销毁!");
}
}
配置
一、web.xml中配置
<listener>
<listener-class>com.ygj.control.onLineCount</listener-class>
</listener>
二、注解方法@WebListener