tomcat中的listener什么时间运行呢?

欣喜 Java经验 发布时间:2025-03-03 11:21:49 阅读数:7400 1
下文笔者讲述tomcat中listener简介及功能说明,如下所示

Listener简介

在Tomcat中
   `Listener`(监听器)是基于Java Servlet规范一种组件

listener的功能
    用于监听Web应用的生命周期事件或特定对象的状态变化

listener何时运行

`Listener`会在特定的事件触发时运行
   具体取决于监听器的类型
   以下是主要的运行时机:
	-应用启动时:
	    当Web应用被加载到Tomcat容器中时,
		  会触发与应用生命周期相关的事件
	-应用关闭时:
	    当Web应用从Tomcat容器中卸载时,
		 会触发相应的销毁事件
	-会话创建/销毁时:
	    当用户会话(`HttpSession`)被创建或销毁时触发
	-请求初始化/销毁时:
	    当一个HTTP请求到达或结束时触发

常见监听器类型

根据监听的对象不同
  `Listener`可以分为以下几类:

(1)ServletContextListener
- 作用:监听整个Web应用的生命周期。
- 运行时机:
  - `contextInitialized(ServletContextEvent sce)`:在应用启动时运行。
  - `contextDestroyed(ServletContextEvent sce)`:在应用关闭时运行。
- 典型用途:初始化全局配置、加载资源文件、启动后台线程等。

(2)HttpSessionListener
- 作用:监听用户会话的创建和销毁。
- 运行时机:
  - `sessionCreated(HttpSessionEvent se)`:当一个新的会话创建时运行。
  - `sessionDestroyed(HttpSessionEvent se)`:当会话超时或被手动销毁时运行。
- 典型用途:统计在线用户数、清理会话相关资源等。

(3)ServletRequestListener
- 作用:监听每个HTTP请求的生命周期。
- 运行时机:
  - `requestInitialized(ServletRequestEvent sre)`:当请求到达时运行。
  - `requestDestroyed(ServletRequestEvent sre)`:当请求结束时运行。
- 典型用途:记录请求日志、初始化请求范围的资源等。

(4)其他监听器
- HttpSessionAttributeListener:监听会话属性的变化(添加、删除、替换)。
- ServletRequestAttributeListener:监听请求属性的变化。
- ServletContextAttributeListener:监听应用上下文属性的变化。

3.配置方式

`Listener`可以通过以下两种方式配置:
- 注解方式(推荐):
  @WebListener
  public class MyListener implements ServletContextListener {
      @Override
      public void contextInitialized(ServletContextEvent sce) {
          System.out.println("应用已启动");
      }

      @Override
      public void contextDestroyed(ServletContextEvent sce) {
          System.out.println("应用已关闭");
      }
  }

-web.xml配置:
  <listener>
      <listener-class>com.example.MyListener</listener-class>
  </listener>
`Listener`运行时间完全由其监听的事件决定。
   开发者可以根据需求选择合适的监听器类型,
    在特定的事件发生时执行自定义逻辑。
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202503/17409721528345.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者