标签:
JSP中的监听器
Web程序在服务器运行的过程中,程序内部会发生多事件,如Web应用的启动和停止、Session会话的开始和销毁、用户请求的开始和结束等等。有时程序员需要在这些事件发生的时机执行一些处理,以完成特定的任务(如通过监控Session的开始和结束,可统计网站的在线人数)。事实上,这些事件是可以编码处理的,Servelt API提供了大量的监听器Listener来监听Web程序中发生的这些事件,程序员只要实现恰当的特定的事件监听器,就可以对该事件进行处理。
使用监听器需要两个步骤:
第一,实现特定的Listener类,编写事件处理;
第二,通过web.xml(或者Annotation)配置启用该Listener。
总共有8个Listener接口,分为3类
1. 与ServletContext有关的Listener接口:
ServletContextListener
ServletContextAttributeListener
2. 与HttpSession有关的Listener接口:
HttpSessionListener
HttpSessionAttributeListener
HttpSessionActivationListener
HttpSessionBindingListener
3. 与ServletRequest有关的Listener接口:
ServletRequestListener
ServletRequestAttributeListener
监听器接口 | 实现方法 | 事件 | 执行时机 |
ServletContextListener | contextInitialized() contextDestroyed() |
ServletContextEvent | 加载Web应用时(如启动服务器后),会调用contextInitialized(),移除Web应用时(服务器停止),会调用contextDestroyed ()方法。 |
ServletContextAttributeListener | attributeAdded() attributeReplaced() attributeRemoved() |
ServletContextAttributeEvent | 向application设置属性、 置换、移除属性时依次调用这 三个方法 |
HttpSessionListener | sessionCreated() sessionDestroyed () |
HttpSessionEvent | 在HttpSession对象创建和销毁时会依次调用这两个方法 |
HttpSessionAttributeListener | attributeAdded() attributeReplaced() attributeRemoved() |
HttpSessionBindingEvent | 向Session设置属性、 置换、移除属性时依次调用这三个方法 |
HttpSessionActivationListener | sessionDidActivate() sessionWillPassivate() |
HttpSessionEvent | 当session对象为了资源利用或负载平衡等原因而必须暂时储存至硬盘或其它储存器时(透过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加载JVM时所采的动作称之为Activate,所以,这两个方法分别执行于Activeate之后与Passivate之前 |
HttpSessionBindingListener | valueBound() valueUnbound() |
HttpSessionBindingEvent |
在HttpServletRequest对象创建和销毁时会依次调用这两个方法 |
ServletRequestListener | requestInitialized() requestDestroyed() |
RequestEvent | 向request对象设置属性、置 换、移除属性时依次调用这三 个方法 |
ServletRequestAttributeListener | attributeAdded() attributeReplaced() attributeRemoved() |
ServletRequestAttributeEvent | 其实例被加入至session对象的属性中,则调valueBound(),若从session对象的属性中移除,则调valueUnbound();实现 HttpSessionBindingListener接口的类无需在web.xml配置 |
标签:
原文地址:http://www.cnblogs.com/gnivor/p/4630472.html