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的事件类型,对应特定事件的监听类必须实现的接口和当事件发生时调用的方法。
事件类型 |
接口 |
方法 |
request初始化 |
javax.servlet.ServletRequestListener |
requestInitialized() |
request销毁 |
javax.servlet.ServletRequestListener |
requestDestroyed() |
增加属性 |
javax.servlet.ServletRequestAttributeListener |
attributeAdded() |
删除属性 |
javax.servlet.ServletRequestAttributeListener |
attributeRemoved() |
属性被替换 |
javax.servlet.ServletRequestAttributeListener |
attributeReplaced() |
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接口内定义的两个方法,只要是实现该接口的“监听器类”,就必须包含这两种方法。
方法名称
|
调用时机
|
sessionCreated(HttpSessionEvent se)
|
在Web应用程序内建立一个新的HTTP会话时, Servlet容器将会调用此方法
|
sessionDestoryed(HttpSessionEvent se)
|
在Web应用程序内移除某个HTTP会话时,Servlet容器将会调用此 方法
|
HttpSessionActivationListener 接口
当Web应用程序的会话必须跨越其他服务器时,实现HttpSessionActivationListener接口的“监听器类”将会收到会话转移的事 件。
下表是HttpSessionActivationListener接口内定义的两种方法。
方法名称
|
调用时机
|
sessionWillPassivate(HttpSessionEvent se)
|
当HTTP会话必须转移到其他服务器之前,Servlet容器将会调用此方法
|
sessionDidActivate(HttpSessionEvent se)
|
当HTTP会话转移到其他服务器以后,Servlet容器将会调用此方法
|
举例来说,会话S必须从服务器A转移到服务器B,此时Servlet容器会在S转移前产生一个会话“被动(passive)”事件,该事件由 HttpSessionActivationListener接口的sessionWillPassivate()方法予以回应。当S转移到服务器B以 后,Servlet容器会再产生一个会话“启动”(activate)事件,该事件由HttpSessionActivationListener接口的 sessionDidActivate()方法予以回应。
HttpSessionAttributeListener 接口
HttpSessionAttributeListener接口与ServletContextAttributeListener非常类似,前者是针对 HTTP会话所设计的“监听器接口”,后者则是针对Servlet运行环境(context)所设计的“监听器接口”,该接口定义的方法见下表。
方法名称
|
调用时机
|
attributeAdded(HttpSessionBindingEvent scab)
|
在HttpSession对象内加入新的属性时会调用此方法
|
attributeRemoved(ServletContextAttributeEvent scab)
|
在HttpSession对象内删除某个属性时会调用此方法
|
attributeReplaced(ServletContextAttributeEvent scab)
|
在HttpSession对象内置换某个属性时会调用此方法
|
当HTTP会话(HttpSession对象)内新增、置换或删除某个属性时将会产生一个事件(HttpSessionBindingEvent),只要 是实现HttpSessionAttributeListener接口的“监听器类”就可以回应该事件。当然了,你必须将这个“监听器类”定义在 web.xml文件内。
HttpSessionBindingListener 接口
HttpSessionBindingListener接口在观念上与HttpSessionAttributeListener接口有点类似,但是它与 本章探讨的“监听器类”并没有直接关系。
因为Servlet 2.3规范以前尚未制定Web应用程序的“监听器”机制,如果想知道HTTP会话内何时加入或移除某个对象,必须采用下列方式:
(1)准备绑定至HTTP会话的对象必须实现 HttpSessionBindingListener接口- - 监听器对象。
(2)在该对象内改写HttpSessionBindingListener接口 所定义的两种方法(参考下表)。
方法名称
|
调用时 机
|
valueBound(HttpSessionBindingEvent event)
|
当监听器对象绑定至HTTP会话时,Servlet容器将会调用此方法
|
valueUnbound(HttpSessionBindingEvent event)
|
当监听器对象从HTTP会话内修改、移除或会话销毁时,Servlet容器将会调用此方法
|
分享到:
相关推荐
### Java的监听器种类 Java中的监听器是一种特殊类型的对象,它们主要负责监听特定的事件并在这些事件发生时执行相应的动作。监听器广泛应用于多种场景,尤其是在Servlet容器中,监听器能够帮助开发者更加灵活地...
这些监听器主要用于Servlet容器,如Tomcat,它们是Java Servlet API的一部分,能够监控和响应应用程序中的各种事件。 1. **Servlet上下文监听器**: - `ServletContextAttributeListener`:这个接口用于监听...
### Servlet监听器总结 #### 一、Listener概念与作用 - **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**...
Servlet监听器是Java Web开发中的一种关键组件,主要用于监控和响应Web应用程序中的特定事件。它们是Servlet规范中定义的特殊类,能够监听ServletContext、HttpSession和ServletRequest等域对象的生命周期事件,以及...
Java Servlet监听器是Java Servlet API中的一个重要组成部分,它们允许开发者在Web应用的生命周期内的某些关键点添加自定义行为。具体来说,监听器可以监控Web应用中的三个主要对象:ServletContext(代表整个Web...
Servlet监听器:监听器可以监听三个大域对象:request、session、servletContext。监听器可以通过web.xml配置或@WebListener注解来绑定。 工作原理:实现了特定接口的类为监听器,用来监听另一个Java类的方法调用...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者对Web应用程序中特定事件的发生进行响应。监听器基于Java的事件驱动模型,通过实现特定的接口,可以在ServletContext、HttpSession和ServletRequest等...
9. **Java EE相关**:如果涉及Java EE,可能会有Servlet、JSP、过滤器、监听器、MVC模式、Spring框架、MyBatis、Hibernate等企业级开发的相关问题。 10. **其他**:可能还会出现一些Java新特性,比如lambda表达式、...
1. **Servlet监听器**:Servlet监听器是实现了javax.servlet.ServletContextListener、javax.servlet.http.HttpSessionListener或javax.servlet.http.HttpSessionAttributeListener接口的类。ServletContextListener...
Servlet 监听器是 Java Servlet 规范中的一种特殊类,能够帮助开发者监听 Web 应用中的特定事件。监听器可以分为三种:ServletContext、ServletSession、ServletRequest。 什么是 Servlet 监听器? Servlet 监听器...
Java Web 开发知识点 Java Web 开发是一门复杂的技术, 涵盖了 Java 语言、Web 开发、HTML、CSS、...27. Servlet 上下文监听器:Servlet 上下文监听器有两个:ServletContextListener 和 ServletRequestListener。
7. **JSP的高级特性**:自定义标签、自定义动作、过滤器和监听器的使用。 8. **JSP 2.0及以上版本的新特性**:例如标签文件、表达式语言的增强、page指令的简化等。 【JSP2_0技术手册Foxit Reader.pdf】 这份PDF...
除此之外,Servlet API还提供了过滤器(Filter)和监听器(Listener)的概念,它们可以拦截请求、修改请求和响应、监听Web应用中的事件。例如,`Filter`可以用于登录验证、内容编码转换等,`ServletContextListener`...
理解Servlet生命周期、服务方法、过滤器和监听器是学习的重点。 3. **Oracle数据库**:Oracle是一种流行的关系型数据库管理系统,用于存储和管理大量结构化数据。这里可能涉及到SQL查询、事务处理、存储过程等。 4...
Java课程介绍.pdf 提供了一个全面的Java学习路线,旨在培养具备高端、多方位、精英级水平的Java软件开发人才。课程结合了Java、物联网和Android技术,为学员提供丰富的实践机会。 1. **Java基础**: - **面向对象...
在IT领域,Java AJAX(Asynchronous JavaScript and XML)与Servlet技术的结合被广泛应用于构建动态、交互性强的Web应用程序。这里的“3级联动”通常指的是在网页表单中,一个下拉框的选择会影响到其他两个下拉框的...
- **监听器(Listener)**:监听应用上下文事件,如用户登录、退出等。 综上所述,"基于jsp+servlet的博客"是一个完整的Web应用实例,它综合运用了多种Java EE技术,实现了丰富的功能,为用户提供了一个便捷、安全...
- WEB-INF:存放web.xml配置文件,定义Servlet映射、过滤器、监听器等。 - lib:第三方库文件夹,可能包含JDBC驱动和其他依赖的jar包。 - db:数据库相关文件,如SQL脚本、配置文件等。 - README.md:项目说明文档,...