当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动、Web应用被停止,用户session开始、用户session结束,用户请求到达等,通常来说这些Web事件对开发者是透明的。
常用的Web事件监听器接口有如下几个。
① ServletContextListener:用于监听Web应用的启动和关闭
contextInitialized(ServletContextEvent sce):启动Web应用时,系统调用Listener的该方法
contextDestroyed(ServletContextEvent sce):关闭Web应用时,系统调用Listener的该方法
ServletContextListener的作用有点类似于load-on-startup Servlet,都可以用于在Web应用启动时,回调方法来启动某些后台程序,这些后台程序负责为系统运行提供支持
② ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变
attributeAdded(ServletContextAttributeEvent event);当程序把一个属性存入application范围时触发该方法。
attributeRemoved(ServletContextAttributeEvent event);当程序把一个属性从application范围删除时触发该方法。
attributeReplaced(ServletContextAttributeEvent event);当程序替换application范围内的属性时触发该方法。
③ ServletRequestListener:用于监听用户请求
requestInitialized(ServletRequestEvent sre):用户请求到达、被初始化时触发该方法
requestDestroyed(ServletRequestEvent sre):用户请求结束、被销毁时触发该方法
④ ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变。
attributeAdded(ServletRequestAttributeEvent event);当程序把一个属性存入request范围时触发该方法。
attributeRemoved(ServletRequestAttributeEvent event);当程序把一个属性从v范围删除时触发该方法。
attributeReplaced(ServletRequestAttributeEvent event);当程序替换request范围内的属性时触发该方法。
⑤ HttpSessionListener:用于监听用户session的开始和结束
sessionInitialized(HttpSessionEvent sre):用户请求到达、被初始化时触发该方法
sessionDestroyed(HttpSessionEvent sre):用户请求结束、被销毁时触发该方法
⑥ HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变
attributeAdded(HttpSessionAttributeEvent event);当程序把一个属性存入request范围时触发该方法。
attributeRemoved(HttpSessionAttributeEvent event);当程序把一个属性从v范围删除时触发该方法。
attributeReplaced(HttpSessionAttributeEvent event);当程序替换request范围内的属性时触发该方法。
现实中一个具体例子是:一个拍卖网站,上线拍卖的物品在新建时指定找过期时间,超过过期时间后应该改变该物品的状态为流拍状态,这是可使用实现ServletContextListener的监听器(在Web应用启动时它就应该被初始化),在该监听器中使用java.util.Timer实行定时去检查是否有存在超期的物品,有则改变物品状态
public void contextInitialized(ServletContextEvent sce) { java.util.Timer timer = new java.util.Timer(true); timer.schedule(new TimerTask() { //该任务的执行体 public void run() { try { mgr.updateWiner(); } catch (AuctionException ae) { ae.printStackTrace(); } } }, 0 , 1000 * 3600); }
相关推荐
Servlet中的八大Listener.docServlet中的八大Listener.docServlet中的八大Listener.docServlet中的八大Listener.docServlet中的八大Listener.docServlet中的八大Listener.docServlet中的八大Listener.docServlet中的...
详细的解释了servlet filter listener 额知识,本文档适合初学者阅读
servlet--listener 各种接口的简单例子 ,将每个接口的实现都简单的举例,特别容易学会,下载后直接 放到工作空间后运行
关于所有ServletListener的介绍,非常有用的一个小东东
web.xml 中的listener、 filter、servlet 加载顺序及其详解
关于filter、servlet在web.xml配置及加载顺序
JAVA Servlet监听器listener学习资料,精心整理,望对各位大虾有帮助。
servlet_filter_listener
Servlet、Filter、Listener深入理解.docx
SpringBoot整合Listener的两种方式: 1.通过注解扫描完成Listener组件的注册 1.创建一个类实现 ServletContextListener (具体实现哪个Listener根据情况来判断) 2.在类上加入注解 @WebListener 3.重写 context...
里边用到了Servlet Filter Listener 很适合新手学习的小例子
本源码将详细介绍web.xml配置中servlet,filter,listener的加载顺序,可以让学习者更好的了解web.xml各种属性配置,自己写的东西,不足之处请大家见谅,顺便收点积分也好下资料,谢谢
主要为大家详细介绍了Filter、Servlet、Listener的学习资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java WEB 篇九 Java servlet、filter、listener、interceptor 之间的区别和联系?
特殊情况(ActionForm,Servlet, Filter, Listener)下Spring如何注入对象,本文源码下载地址http://usc.googlecode.com/files/UsersManagerWithAJAX.rar
Using Forms Listener Servlet with Oracle Applications 11i (Doc ID 201340.1)
Servlet Jsp XML HTML JAVA WEB开发技术 Listener监听器 事件监听器用于对程序中发生的事件进行监听,在监听的过程中会涉及几个重要组成部分: 事件(Event) 事件源 事件处理器 事件监听器(Listener) 用户的一个...