`

Servlet中Listener介绍

阅读更多

      当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、Filter、Listener 详解 Servlet 是运行在服务器上的小程序,它可以使任何 Java 应用程序、...Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。

    Servlet中的八大Listener

    Servlet中的八大Listener是Java Web开发中的重要组成部分,它们允许开发者监听和响应Web应用程序中的特定事件。这些Listener提供了在Servlet容器(如Tomcat)管理的生命周期事件上的扩展点,使得我们能够在恰当的...

    servlet--listener 各种接口的简单例子

    在Java的Web开发中,Servlet和Listener是两个非常重要的组件,它们构成了动态Web应用程序的核心部分。Servlet主要负责处理客户端的请求并返回响应,而Listener则用于监听和响应各种Web应用程序中的事件。本教程将...

    web.xml 中的listener、 filter、servlet 加载顺序及其详解.doc

    Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...

    ServletListener大全

    下面详细介绍各种常见的`ServletListener`: ### 1. ServletContextListener - **方法**: - `contextInitialized(ServletContextEvent sce)`:当Web应用启动时调用。 - `contextDestroyed(ServletContextEvent ...

    Servlet、Filter、Listener深入理解.docx

    Servlet、Filter和Listener是Java Web开发中的核心组件,它们在构建动态Web应用程序中扮演着重要角色。下面将分别深入解析这三个概念。 **Servlet接口** Servlet是Java编程语言中定义的一个接口,它允许开发者创建...

    关于web.xml配置文件servlet,filter,listener加载顺序

    关于filter、servlet在web.xml配置及加载顺序

    web服务器三大组件servlet、Filter、Listener——浅浅笔记

    Web服务器中的三大组件,即Servlet、Filter和Listener,是构建动态Web应用程序的关键元素。这些组件都是基于Java的,主要用于增强和扩展Web服务器的功能。 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...

    servlet_filter_listener

    在Java Web开发中,`Servlet`、`Filter`和`Listener`是三个核心组件,它们在构建动态Web应用程序中扮演着重要角色。本篇将详细阐述这三个概念以及它们的工作原理和应用场景。 首先,我们来了解`Servlet`。Servlet是...

    SpringBoot整合Listener的两种方式.docx

    在Spring Boot应用中,整合Listener主要是为了监听应用的生命周期事件,例如在应用启动或关闭时执行特定的操作。这里我们讨论两种整合Listener的方式。 ### 方式一:通过注解扫描完成Listener组件的注册 1. **创建...

    servlet 中文帮助文档

    Servlet是Java Web开发中的核心组件,它用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。这份"Servlet中文帮助文档"提供了关于Servlet API的详细描述,便于开发者理解和使用。...

    servlet中文帮助文档CHM格式

    9. **监听器**:Servlet Context Listener、Session Listener和Request Listener等,它们在特定事件发生时执行代码,如上下文初始化、会话创建或结束。 10. **MVC模式**:Servlet与Model-View-Controller设计模式的...

    JAVA Servlet监听器listener学习资料

    Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...

    Servlet中文API文档 servlet

    9. **监听器Listener**:Servlet API中的监听器(如ServletRequestListener、ServletContextListener)可以在特定事件(如请求到达、应用启动/停止)发生时执行代码,增强了应用程序的灵活性。 10. **会话管理**:...

    Servlet API中文文档

    除了这些核心接口,Servlet API还包括了过滤器(Filter)和监听器(Listener)的概念,它们是实现Web应用功能扩展和管理的重要工具。 - `javax.servlet.Filter`:过滤器允许我们在请求到达Servlet之前和响应离开...

    servlet监视器

    通过上述介绍,我们可以看到Servlet Listener不仅能够简化Web应用的开发过程,还能在很多方面提升应用的性能和用户体验。因此,在进行Java Web开发时,合理地利用Servlet Listener是非常重要的。

    Servlet小例子源码

    Servlet、Filter和Listener是Java Web开发中的三大核心组件,它们在构建动态Web应用程序时起着至关重要的作用。这个"Servlet小例子源码"压缩包显然提供了关于这些概念的实际应用示例,非常适合初学者来理解和掌握。 ...

    servlet简单小练习

    在这个名为“servlet简单小练习”的压缩包文件中,包含了几个关于Servlet的简单示例,包括servlet_listener、servlet_resourceaccess、servlet_filter以及一个名为“servlet”的综合练习。 1. **servlet_listener**...

Global site tag (gtag.js) - Google Analytics