当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、Filter、Listener 详解 Servlet 是运行在服务器上的小程序,它可以使任何 Java 应用程序、...Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。
Servlet中的八大Listener是Java Web开发中的重要组成部分,它们允许开发者监听和响应Web应用程序中的特定事件。这些Listener提供了在Servlet容器(如Tomcat)管理的生命周期事件上的扩展点,使得我们能够在恰当的...
在Java的Web开发中,Servlet和Listener是两个非常重要的组件,它们构成了动态Web应用程序的核心部分。Servlet主要负责处理客户端的请求并返回响应,而Listener则用于监听和响应各种Web应用程序中的事件。本教程将...
Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...
下面详细介绍各种常见的`ServletListener`: ### 1. ServletContextListener - **方法**: - `contextInitialized(ServletContextEvent sce)`:当Web应用启动时调用。 - `contextDestroyed(ServletContextEvent ...
Servlet、Filter和Listener是Java Web开发中的核心组件,它们在构建动态Web应用程序中扮演着重要角色。下面将分别深入解析这三个概念。 **Servlet接口** Servlet是Java编程语言中定义的一个接口,它允许开发者创建...
关于filter、servlet在web.xml配置及加载顺序
Web服务器中的三大组件,即Servlet、Filter和Listener,是构建动态Web应用程序的关键元素。这些组件都是基于Java的,主要用于增强和扩展Web服务器的功能。 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...
在Java Web开发中,`Servlet`、`Filter`和`Listener`是三个核心组件,它们在构建动态Web应用程序中扮演着重要角色。本篇将详细阐述这三个概念以及它们的工作原理和应用场景。 首先,我们来了解`Servlet`。Servlet是...
在Spring Boot应用中,整合Listener主要是为了监听应用的生命周期事件,例如在应用启动或关闭时执行特定的操作。这里我们讨论两种整合Listener的方式。 ### 方式一:通过注解扫描完成Listener组件的注册 1. **创建...
Servlet是Java Web开发中的核心组件,它用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。这份"Servlet中文帮助文档"提供了关于Servlet API的详细描述,便于开发者理解和使用。...
9. **监听器**:Servlet Context Listener、Session Listener和Request Listener等,它们在特定事件发生时执行代码,如上下文初始化、会话创建或结束。 10. **MVC模式**:Servlet与Model-View-Controller设计模式的...
Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...
9. **监听器Listener**:Servlet API中的监听器(如ServletRequestListener、ServletContextListener)可以在特定事件(如请求到达、应用启动/停止)发生时执行代码,增强了应用程序的灵活性。 10. **会话管理**:...
除了这些核心接口,Servlet API还包括了过滤器(Filter)和监听器(Listener)的概念,它们是实现Web应用功能扩展和管理的重要工具。 - `javax.servlet.Filter`:过滤器允许我们在请求到达Servlet之前和响应离开...
通过上述介绍,我们可以看到Servlet Listener不仅能够简化Web应用的开发过程,还能在很多方面提升应用的性能和用户体验。因此,在进行Java Web开发时,合理地利用Servlet Listener是非常重要的。
Servlet、Filter和Listener是Java Web开发中的三大核心组件,它们在构建动态Web应用程序时起着至关重要的作用。这个"Servlet小例子源码"压缩包显然提供了关于这些概念的实际应用示例,非常适合初学者来理解和掌握。 ...
在这个名为“servlet简单小练习”的压缩包文件中,包含了几个关于Servlet的简单示例,包括servlet_listener、servlet_resourceaccess、servlet_filter以及一个名为“servlet”的综合练习。 1. **servlet_listener**...