1、Servlet上下文监听
监听ServletContext对象的创建、删除以及属性添加、删除、修改操作。
1)ServletContextListener
监听ServletContext对象的创建和删除。
contextInitialized(ServletContextEvent event):应用程序被加载及初始化;
contextDestroyed(ServletContextEvent event):应用程序被关闭。
2)ServletAttributeListener
监听ServletContext属性的添加、删除和修改。
attributeAdded(ServletContextAttributeEvent event):当有对象加入Application的范围时,通知正在收听的对象。
attributeReplaced(ServletContextAttributeEvent event):当在Application的范围有对象取代另一个对象时,通知正在收听的对象。
attributeRemoved(ServletContextAttributeEvent event):当有对象从Application的范围移除时,通知正在收听的对象。
创建监听器:
①实现ServletContextListener
②在web.xml文件中配置:
<listener>
<listener-class>XXXXXListener</listener-class>
</listener>
2、HttpSession监听
1)HttpSessionListener
监听session会话创建、销毁。
sessionCreated(HttpSessionEvent event):session被加载及初始化。
sessionDestroyed(HttpSessionEvent event):session被载出(销毁)。
2)HttpSessionActivationListener
监听HttpSession的有效性
attributeAdded(HttpSessionBindingEvent event):session中增加属性(有用户登录,并且创建session)的话,这个监听器会监听到这个增加的属性,从而统计在线人数.
attributeReplaced(HttpSessionBindingEvent event):当在session的范围有对象取代另一个对象时,通知正在收听的对象。
attributeRemoved(HttpSessionBindingEvent event):移除。
3)HttpBindingListener
监听Http会话中对象的绑定信息。唯一不需要在web.xml中配置Listener。
valueBound(HttpSessionBindingEvent event):当有对象被加入session的范围时会被自动调用。
valueUnBound(HttpSessionBindingEvent event):当有对象从session的范围内被移除时会被调用。
4)HttpSessionAttributeListener
监听Http会话中属性的设置请求。
sessionDidActivate(HttpSessionEvent event):session成为有效状态。
sessionWillPassivate(HttpSessionEvent event):session成为无效状态。
3、Servlet请求监听
要实现对客户端的请求和请求参数的监听需要实现两个接口。
1)ServletRequestListener接口
requestInitialized(ServletRequestEvent event):ServletRequest被加载及初始化。
requestDestroyed(ServletRequestEvent event):ServletRequest被关闭。
2)ServletRequestAttributeListener接口
attributeAdded(ServletRequestAttributeEvent event):有对象加入request的范围。
attributeReplaced(ServletRequestAttributeEvent event):有对象替换.
attributeRemoved(ServletRequestAttributeEvent event):有对象移除.
监听ServletContext对象的创建、删除以及属性添加、删除、修改操作。
1)ServletContextListener
监听ServletContext对象的创建和删除。
contextInitialized(ServletContextEvent event):应用程序被加载及初始化;
contextDestroyed(ServletContextEvent event):应用程序被关闭。
2)ServletAttributeListener
监听ServletContext属性的添加、删除和修改。
attributeAdded(ServletContextAttributeEvent event):当有对象加入Application的范围时,通知正在收听的对象。
attributeReplaced(ServletContextAttributeEvent event):当在Application的范围有对象取代另一个对象时,通知正在收听的对象。
attributeRemoved(ServletContextAttributeEvent event):当有对象从Application的范围移除时,通知正在收听的对象。
创建监听器:
①实现ServletContextListener
②在web.xml文件中配置:
<listener>
<listener-class>XXXXXListener</listener-class>
</listener>
2、HttpSession监听
1)HttpSessionListener
监听session会话创建、销毁。
sessionCreated(HttpSessionEvent event):session被加载及初始化。
sessionDestroyed(HttpSessionEvent event):session被载出(销毁)。
2)HttpSessionActivationListener
监听HttpSession的有效性
attributeAdded(HttpSessionBindingEvent event):session中增加属性(有用户登录,并且创建session)的话,这个监听器会监听到这个增加的属性,从而统计在线人数.
attributeReplaced(HttpSessionBindingEvent event):当在session的范围有对象取代另一个对象时,通知正在收听的对象。
attributeRemoved(HttpSessionBindingEvent event):移除。
3)HttpBindingListener
监听Http会话中对象的绑定信息。唯一不需要在web.xml中配置Listener。
valueBound(HttpSessionBindingEvent event):当有对象被加入session的范围时会被自动调用。
valueUnBound(HttpSessionBindingEvent event):当有对象从session的范围内被移除时会被调用。
4)HttpSessionAttributeListener
监听Http会话中属性的设置请求。
sessionDidActivate(HttpSessionEvent event):session成为有效状态。
sessionWillPassivate(HttpSessionEvent event):session成为无效状态。
3、Servlet请求监听
要实现对客户端的请求和请求参数的监听需要实现两个接口。
1)ServletRequestListener接口
requestInitialized(ServletRequestEvent event):ServletRequest被加载及初始化。
requestDestroyed(ServletRequestEvent event):ServletRequest被关闭。
2)ServletRequestAttributeListener接口
attributeAdded(ServletRequestAttributeEvent event):有对象加入request的范围。
attributeReplaced(ServletRequestAttributeEvent event):有对象替换.
attributeRemoved(ServletRequestAttributeEvent event):有对象移除.