javaservlet监听器种类及介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

javaservlet监听器种类及介绍
ServletContextAttributeListener 监听对ServletContext属性的操作,比如增加、删除、修改属性。

ServletContextListener监听ServletContext。

当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。

ServletContextListener 接口
contextInitialized 初始化方法
contextDestroyed 销毁方法
ServletRequestListener,ServletRequestAttributeListener 接口
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 接口的“监听器类”将会收到会话转移的事 件。

下表是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接口有点类似,但是它与本章探讨的“监听器类”并没有直接关系。

因为Servlet 2.3规范以前尚未制定Web应用程序的“监听器”机制,如果想知道HTTP会话内何时加入或移除某个对象,必须采用下列方式:
(1)准备绑定至HTTP会话的对象必须实现HttpSessionBindingListener接口- - 监听器对象。

(2)在该对象内改写HttpSessionBindingListener接口所定义的两种方法(参考下表)。

相关文档
最新文档