- 浏览: 429512 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xiesbao:
找到了,太坑爹了。
Intellij Idea 滚动条跳动的问题 -
hvang1988:
按照你说的例子,主备说的是dbtest1,dbtest2,db ...
阿里开源Mysql分布式中间件:Cobar -
hvang1988:
问个问题:一个数据库的表的全部数据只分布在一个cobar上。多 ...
阿里开源Mysql分布式中间件:Cobar -
SiKing:
多谢,一直被这个问题困扰
Intellij Idea 滚动条跳动的问题 -
guodage003:
多谢 解决了这个蛋疼的问题。。
Intellij Idea 滚动条跳动的问题
Servlet API提供了基本的应用程序事件监听器接口。编程者可以通过实现这些接口来使用管理事件的功能。Servlet2.4以后提供了对以下对象的事件监听:ServletContext,HttpSession,ServletRequest。监听ServletContext可以使Web程序得知整个应用程序载入和卸载等运行情况。监听HttpSession可以Web程序了解应用程序会期间的状况并作出响应。监听ServletRequest可以使Web程序控制Web请求的生命周期。
下面结合JavaServetAPI官方文档对各个事件监听器接中进行说明。
一、ServletContextListener
所在包:javax.servlet
接口声明:public interface ServletContextListener extends java.util.EventListener
方法:
1.void contextDestroyed(ServletContextEvent sce)
当应用被卸载后触发执行该方法中的代码。
2.void contextInitialized(ServletContextEvent sce)
当应用在初始化时触发执行该方法中的代码。
这里需要对ServletContentEvent说明一下,它是一个ServletContext对象的事件,其类的声明如下:
public class ServletContentEvent extends java.util.EventObject
包含方法:ServletContext getServletContext(),返回事件的Servlet上下文,即产生事件的当前应用程序。
二、ServletContextAttributeListener
所在包:javax.servlet
接口声明:public interface ServletContextAttributeListener
extends java.util.EventListener
方法:
1. void attributeAdded(ServletContextAttributeEvent scab)
当一个新的属性加入到Servlet的上下文中后触发该方法中的代码。
2.void attributeRemoved(ServletContextAttributeEvent scab)
当一个属性被从servlet的上下文中移走后触发该方法中的代码。
3.void attributeReplaced(ServletContextAttributeEvent scab)
当servlet上下文中的一个属性的值被替换后触发该方法中的代码。
ServletContextAttributeEvent是servlet上下文里的属性的事件,其类声明如下:
public class ServletContextAttributeEvent
extends ServletContextEvent
包含方法:String GetName(),返回产生事件的属性名称;Object GetValue(),返回产生事件的属性的值。
三、HttpSessionListener
所在包:javax.servlet
接口声明:public interface HttpSessionListener
extends java.util.EventListener
方法:
1.void sessionCreated(HttpSessionEvent se)
当一个会话被创建后触发执行该方法中的代码。
2.void sessionDestroyed(HttpSessionEvent se)
当一个会话被释放后触发执行该方法中的代码。
HttpSessionEvent是会话事件类,其声明如下:
public class HttpSessionEvent
extends java.util.EventObject
包含方法:HttpSession getSession(),返回产生事件的session对象。
四、HttpSessionActivationListener
所在包:javax.servlet
接口声明:public interface HttpSessionActivationListener
extends java.util.EventListener
方法:
1.void SessionDidActivate(HttpSessionEvent se)
2.void SessionWillPassivate(HttpSessionEvent se)
Activate与Passivate是用于置换对象的动作,当session对象为了资源利用或负载平衡等原因而必须暂时储存至硬盘或其它储存器时(透过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加载JVM时所采的动作称之为Activate。
五、HttpSessionAttributeListener
所在包:javax.servlet
接口声明:public interface HttpSessionAttributeListener
extends java.util.EventListener
方法:
1.void attributeAdded(HttpSessionBindingEvent se)
2.void attributeReplaced(HttpSessionBindingEvent se)
3.void attributeRemoved(HttpSessionBindingEvent se)
以上三个方法分别在会话属性被加入、会话属性值被修改和会话属性被移除时触发执行。
HttpSessionBindingEvent是一个会话事件对象类,其声明如下:
public interface HttpSessionBindingListener
extends java.util.EventListener
包含方法:String getName(),返回产生当前事件的会话的属性名。Object getValue(),返回产生当前事件的会话的属性值。HttpSession getSession(),返回产生当前事件的会话对象。
六、HttpSessionBindingListener(唯一一个不用在web.xml中配置的监听器)
所在包:javax.servlet
接口声明:public interface HttpSessionBindingListener
extends java.util.EventListener
方法:
1.void valueBound(HttpSessionBindingEvent event)
当实现HttpSessionBindingListener接口的对象被绑定到Session Attribute中,该对象的此方法被执行。
2.void valueUnbound(HttpSessionBindingEvent event)
当实现HttpSessionBindingListener接口的对象被从Session Attribute解除绑定,该对象的此方法被执行。
请注意HttpSessionAttributeListener与HttpSessionBindingListener的区别:
1.前者是需要在web.xml中进行描述的,后者不需要。
2.前者是在任何session的属生变化时都会触发执行其方法中的代码,而后者只是在实现它的对象被绑定到会话属性或被从会话属生中解除绑定时,才会触发执行那个对象的valueBound和valueUnboundy这两个方法的代码。比如说有两个对象A和B都实现了HttpSessionBindingListener接口,当A被绑定到会话属性中时,只是A的valueBound()方法被触发执行。
七、ServletRequestListener
所在包:javax.servlet
接口声明:public interface ServletRequestListener
extends java.util.EventListener
方法:
1.void RequestDestroyed(ServletRequestEvent evt)
2.void RequestInitialized(ServletRequestEvent evt)
以上两个方法分别在ServetRequest对象初始化和清除时触发执行。
ServletRequestEvent表示ServletReuest事件类,其声明如下:
public class ServletRequestEvent
extends java.util.EventObject
包含方法:ServletContext getServletContext(),获得当前Web应用程序的上下文对象。ServletRequest getServletRequest(),获得当前事件的主体,ServletRequest对象。
八、ServletRequestAttributeListener
所在包:javax.servlet
接口声明:public interface ServletRequestAttributeListener
extends java.util.EventListener
方法:
1.void attributeAdded(ServletRequestAttributeEvent e)
当向ServlvetRequest对象属性中添加属性后触发执行该方法。
2.void attributeRemoved(ServletRequestAttributeEvent e)
当向ServlvetRequest对象属性中移除属性后触发执行该方法。
3.void attributeReplaced(ServletRequestAttributeEvent e)
当修改ServlvetRequest对象属性的属生值后触发执行该方法。
ServletRequestAttributeEvent是ServletRequest属性事件类,其声明如下:
public class ServletRequestAttributeEvent
extends ServletRequestEvent
包含方法:String getName(),获得触发事件的属性的名称。Object getValue(),获得触发事件的属生的值。
下面说明如何在web.xml中布署事件监听器以实现对事件的处理,格式如下:
<listener>
<listener-class>
fey.servlet.listener.CustomServletContextListener
</listener-class >
</listener>
其中fey.servlet.listener.CustomServletContextListener是实现上述各事件监听器接口的类名。当然,你需要将这些类放入Web容器的Web应用的classes或lib目录下以让Web容器可以找到。
另外说明一点,一个类可以一个或多个监听器接口。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/truexf/archive/2006/10/12/1331853.aspx
发表评论
-
深入理解Java内存模型
2014-11-08 16:54 1025深入理解Java内存模型(一)——基础深入理 ... -
阿里开源Mysql分布式中间件:Cobar
2014-08-12 11:54 64462这几天研究 ... -
今日开源介绍:Google Guava、Google Guice、Joda-Time
2014-08-11 11:55 18254一、Guava 是一个 Google 的基于java1.6的 ... -
Jackson 动态过滤属性
2014-06-20 16:15 3039在把java对象转换为json时,有时需要依据需求动态过滤掉 ... -
自实现CAS原理JAVA版,模拟下单库存扣减
2014-04-02 17:47 7075在做电商系统时,库存 ... -
JAVA逻辑判断工具类
2013-09-06 21:33 1760在开发过程中,经常需要对“对象”、Map、Collecti ... -
JSP页面编译成Servlet类文件过程中所涉及到的编码问题
2011-02-23 12:16 2907当请求一个JSP页面时,一般的都需要经历下面几个阶段: 1 ... -
Java中的字符集编码入门(六)Java中的增补字符
2011-02-23 12:11 1481Java号称对Unicode提 ... -
Java中的字符集编码入门(五)Java代码中的字符编码转换
2011-02-23 12:08 1159如果你是JVM的设计者,让你来决定JVM中所有字符的表 ... -
Java中的字符集编码入门(四)网页文件的编码
2011-02-23 12:03 1101接着上节的思路说,一个网页要想在浏览器中能够正确显示,需要在三 ... -
Java中的字符集编码入门(三)GB2312,GBK与中文网页
2011-02-23 12:02 1260GB2312是对中国的开发人员来说很重要的一个词汇,它的来龙去 ... -
Java中的字符集编码入门(二)编码字符集与字符集编码的区别
2011-02-23 12:01 933需要再一次强调的是, ... -
Java中的字符集编码入门(一)Unicode与UCS的历史恩怨
2011-02-23 11:59 1061ASCII及相关标准 ... -
方便管理工程中的SQL语句
2010-10-13 17:13 1849引用 之前在项目开发时候,经理要求把所有的SQL语句挑出 ... -
常见通信名称缩写解释
2010-09-03 16:05 2350引用 在看新闻时,购买手机时,经常听到关于通信方面的一 ... -
飞信维脉系统(定时短息发送系统)
2010-08-01 21:27 1601引用 因为工作原因 ... -
HTTP协议介绍
2010-07-28 09:45 824引用 HTTP(HyperTextTransferPro ... -
Java调用存储过程举例
2010-07-23 18:22 918Java调用oracle存储过程的示例总结如下。 ... -
Oracle数据库链接池
2010-04-13 17:28 2014引用 很多时候我们都要操作数据库,高效数据库操作的第一步 ... -
不区分大小写查找字符串(二)
2010-03-25 20:56 2310引用 上次发表了自己编写不区分大小查找的方法,这次使用了 ...
相关推荐
- **监听器**:监听器允许对Web应用程序中的事件做出反应,例如监听会话的创建和销毁,或者ServletContext的变化。 - **MIME多部分支持**:支持解析上传文件的MIME多部分请求。 - **URL重写**:提供了一种方式来...
7. **监听器**:监听器是响应特定事件(如会话创建、销毁或属性改变)的特殊Servlet。它们通过实现特定接口并在`web.xml`中注册来启用。 8. **JSP和Servlet协作**:JSP可以看作是视图层,而Servlet作为控制器,两者...
Servlet是Java平台上的一个核心组件,用于构建动态Web应用程序。Servlet 2.4和3.0规范是由Sun...无论是Servlet 2.4的过滤器链、监听器增强,还是Servlet 3.0的注解驱动、异步处理,都是现代Web开发中不可或缺的知识点。
5. **监听器(Listener)**:监听器可以监听特定的事件,如会话创建、销毁、请求到达等,实现自动化的任务。 JSP 2.0则是JavaServer Pages的第二个主要版本,它增强了与Servlet的交互,以及对动态网页开发的支持: ...
4. **监听器(Listener)**:监听器是实现了特定接口的类,用于监听Servlet容器中的特定事件,如会话创建、销毁、上下文初始化或销毁等。例如,`HttpSessionListener`用于监听会话的创建和销毁。 5. **请求和响应...
这个"Servlet2.4-1帮助文档(英文)"的CHM文件很可能是官方发布的API文档,包含了Servlet 2.4规范的所有类、接口、方法和注解的详细说明,是学习和开发Servlet应用的重要参考资料。通过查阅这个文档,开发者可以深入...
2. **监听器(Listener)**:监听器是实现了特定接口的对象,用于监听服务器、会话或组件事件。例如,SessionListener可以监听会话的创建、失效等事件,ContextListener可以监听应用的启动和停止。 3. **请求分发...
Servlet 2.4是Java ...综上,"servlet2.4doc"可能包含了关于Servlet 2.4规范的详细文档,涵盖了从Servlet配置、请求响应处理、过滤器到会话管理、安全性、国际化等各个方面的内容,是Java Web开发者的宝贵参考资料。
新增了ServletRequest监听器类和方法,允许开发者在请求生命周期的不同阶段进行干预,提高应用的可扩展性和定制性。 6. **SingleThreadModel的废弃**: SingleThreadModel接口不再推荐使用,因为它的线程安全策略...
4. **Listener**:这一版本增加了多种监听器接口,如HttpSessionListener、ServletRequestListener和ServletContextListener。这些监听器可以在特定事件(如会话创建、请求到达或上下文初始化)发生时执行代码,增强...
同时,JSS 2.4 也提供了丰富的 API 来支持高级功能,如过滤器、监听器等,便于开发者扩展应用功能。 #### 八、总结 Java Servlet Specification 2.4 是一个重要的规范文档,它不仅为开发者提供了构建高性能、安全...
1. **注解支持**:Servlet 2.4引入了注解,使得开发者可以在类或方法上添加注解,以声明servlet、过滤器和监听器,无需使用web.xml配置文件。 2. **表达式语言(EL)**:虽然EL 1.0在Servlet 2.3中就已经存在,但在...
其次,Servlet 2.4规范引入了过滤器(Filter)的概念,这是一种强大的工具,允许你在请求到达Servlet之前或之后对其进行拦截和修改。通过实现`Filter`接口并配置在`web.xml`中,你可以实现诸如登录检查、URL重写、...
- 支持注解(Annotation),简化了Servlet、过滤器和监听器的配置。 - 引入了统一的表达式语言(EL,Expression Language),简化了从JSP页面访问JavaBean属性。 - 提供了更强大的过滤器链和会话管理功能。 总之...
2. **Listener**:增强了事件监听器,如HttpSessionListener、ServletRequestListener和ServletRequestAttributeListener,让开发者可以监听会话和其他HTTP事件。 3. **JSP 2.0集成**:Servlet 2.4与JSP 2.0紧密...
- 实现了监听器(Listener)接口,如ServletContextListener,用于在Servlet容器启动和停止时执行特定操作。 - 引入过滤器(Filter)概念,允许开发者在请求到达Servlet之前进行拦截和处理,实现如权限控制、字符...
- web.xml是Web应用的部署描述符,定义了应用的配置信息,如Servlet、Filter、监听器等的配置。 9. **监听器(Listener)**: - 监听器可以监听特定的事件,如会话创建、销毁,上下文初始化、销毁等,以执行相应...
侦听器(Listener)则是Servlet容器中的事件监听器,它们监听特定的事件,如session的创建、销毁、属性改变,或是请求初始化、销毁等。通过实现各种接口,如`HttpSessionListener`、`ServletRequestListener`等,...
Java Servlet监听器是Java Servlet API中的一个重要组成部分,它们允许开发者在Web应用的生命周期内的某些关键点添加自定义行为。具体来说,监听器可以监控Web应用中的三个主要对象:ServletContext(代表整个Web...
在这个版本中,Servlet容器如何加载和管理Servlet、过滤器和监听器的生命周期有了明确的规定。 此外,`web-app_2_4.xsd`还包含关于安全配置的元素,如`<security-constraint>`定义了对资源的访问限制,`...