ServletContextAttributeListener 监听对ServletContext属性的操作,比如增加、删除、修改属性。 ServletContextListener监听ServletContext。
ServletContextListener 接口 contextInitialized 初始化方法 contextDestroyed 销毁方法
Servlet 2.4版在事件监听器中加入了ServletRequest监听器,包括:ServletRequestListener, ServletRequestAttributeListener ,用来管理和控制与ServletRequest动作有关的事件。 对于ServletRequest事件,当request初始化、销毁或者request属性的增加、删除和替换时,事件监听类得到通知。
下表列出了 ServletRequest的事件类型,对应特定事件的监听类必须实现的接口和当事件发生时调用的方法。
HttpSessionListener 接口 Http会话(Seesion)与请求(Request)与ServletContext用法相当。需指出,Request监听器在Tomcat 4.1不能调试,故升级到Tomcat 5.0才可以,所以可以肯定RequestListener是符合Servlet2.4新规范的,需用tomcat5.0以上版本。 利用HttpSessionListener接口可针对HTTP会话建立一个“监听器类”。只要Web应用程序内新增了一个HTTP会话,Servlet 容器就会将该事件(HttpSessionEvent)转交给适当的“监听器类”进行处理(必须事先配置web.xml)。 下表是HttpSessionListener接口内定义的两个方法,只要是实现该接口的“监听器类”,就必须包含这两种方法。
HttpSessionActivationListener 接口 当Web应用程序的会话必须跨越其他服务器时,实现HttpSessionActivationListener接口的“监听器类”将会收到会话转移的事 件。
举例来说,会话S必须从服务器A转移到服务器B,此时Servlet容器会在S转移前产生一个会话“被动(passive)”事件,该事件由 HttpSessionActivationListener接口的sessionWillPassivate()方法予以回应。当S转移到服务器B以 后,Servlet容器会再产生一个会话“启动”(activate)事件,该事件由HttpSessionActivationListener接口的 sessionDidActivate()方法予以回应。 HttpSessionAttributeListener 接口 HttpSessionAttributeListener接口与ServletContextAttributeListener非常类似,前者是针对 HTTP会话所设计的“监听器接口”,后者则是针对Servlet运行环境(context)所设计的“监听器接口”,该接口定义的方法见下表。
当HTTP会话(HttpSession对象)内新增、置换或删除某个属性时将会产生一个事件(HttpSessionBindingEvent),只要 是实现HttpSessionAttributeListener接口的“监听器类”就可以回应该事件。当然了,你必须将这个“监听器类”定义在 web.xml文件内。 HttpSessionBindingListener 接口 HttpSessionBindingListener接口在观念上与HttpSessionAttributeListener接口有点类似,但是它与 本章探讨的“监听器类”并没有直接关系。 (1)准备绑定至HTTP会话的对象必须实现 HttpSessionBindingListener接口- - 监听器对象。 (2)在该对象内改写HttpSessionBindingListener接口 所定义的两种方法(参考下表)。
|
|
来自: 昵称27831725 > 《java servlet监听器》