Listener监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应,常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。
一、监听器的分类
1. 按监听的对象划分,可以分为:
- ServletContext对象监听器
- HttpSession对象监听器
- ServletRequest对象监听器
2. 按监听的事件划分,可以分为:
- 监听对象自身创建和销毁的监听器
- 监听对象属性变更的监听器
- 感知Session绑定事件的监听器
二、监听器接口源码
- ServletContextListener
public abstract interface ServletContextListener extends EventListener
{
public abstract void contextInitialized(ServletContextEvent paramServletContextEvent);
public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent);
}
- ServletContextAttributeListener
public abstract interface ServletContextAttributeListener extends EventListener
{
public abstract void attributeAdded(ServletContextAttributeEvent paramServletContextAttributeEvent);
public abstract void attributeRemoved(ServletContextAttributeEvent paramServletContextAttributeEvent);
public abstract void attributeReplaced(ServletContextAttributeEvent paramServletContextAttributeEvent);
}
- HttpSessionListener
public abstract interface HttpSessionListener extends EventListener
{
public abstract void sessionCreated(HttpSessionEvent paramHttpSessionEvent);
public abstract void sessionDestroyed(HttpSessionEvent paramHttpSessionEvent);
}
- HttpSessionAttributeListener
public abstract interface HttpSessionAttributeListener extends EventListener
{
public abstract void attributeAdded(HttpSessionBindingEvent paramHttpSessionBindingEvent);
public abstract void attributeRemoved(HttpSessionBindingEvent paramHttpSessionBindingEvent);
public abstract void attributeReplaced(HttpSessionBindingEvent paramHttpSessionBindingEvent);
}
- HttpSessionActivationListener
public abstract interface HttpSessionActivationListener extends EventListener
{
public abstract void sessionWillPassivate(HttpSessionEvent paramHttpSessionEvent);
public abstract void sessionDidActivate(HttpSessionEvent paramHttpSessionEvent);
}
- HttpSessionBindingListener
public abstract interface HttpSessionBindingListener extends EventListener
{
public abstract void valueBound(HttpSessionBindingEvent paramHttpSessionBindingEvent);
public abstract void valueUnbound(HttpSessionBindingEvent paramHttpSessionBindingEvent);
}
- ServletRequestListener
public abstract interface ServletRequestListener extends EventListener
{
public abstract void requestDestroyed(ServletRequestEvent paramServletRequestEvent);
public abstract void requestInitialized(ServletRequestEvent paramServletRequestEvent);
}
- ServletRequestAttributeListener
public abstract interface ServletRequestAttributeListener extends EventListener
{
public abstract void attributeAdded(ServletRequestAttributeEvent paramServletRequestAttributeEvent);
public abstract void attributeRemoved(ServletRequestAttributeEvent paramServletRequestAttributeEvent);
public abstract void attributeReplaced(ServletRequestAttributeEvent paramServletRequestAttributeEvent);
}
三、监听器的使用实例
- ServletContextListener
- ServletContextAttributeListener
- HttpSessionListener
- HttpSessionAttributeListener
- HttpSessionActivationListener
- HttpSessionBindingListener
- ServletRequestListener
- ServletRequestAttributeListener