【Web后端】监听器Listener

1、简介

  • 用来监听Servlet组件对象状态发生变化的组件
  • 可以监听的源包括:ServetRequest、HttpSession、ServletContext
  • 当监听到事件源状态发生变化时,会有对应的响应行为

2、使用方法

  • 在web.xml文件中配置
java 复制代码
<listener>
<listener-class>com.coder.util.ListenerContext</listener-class>
</listener>
  • 如果你使用的是Servlet 3.0或更高版本,可以通过@WebListener 注解配置,在监听器上加注解
java 复制代码
@WebListener
public class MyServletContextListener implements ServletContextListener {
    // ...
}

3、监听器对象接口事件

|----------------|-------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| 监听对象 | 监听接口 | 监听事件 |
| ServletRequest | ServletRequestListener ServletRequestAttributeListener | ServletRequestEvent ServletRequestAttributeEvent |
| HttpSession | HttpSessionListener HttpSessionActivationListener HttpSessionAttributeListender HttpSessionBindingListender | HttpSessionEvent HttpSessionBindingEvent |
| ServletContext | ServletContextListener ServletContextAttributeListener | ServletContextEvent ServletContextAttributeEvent |

3.1代码举例

  • ServletContextListener:用于监听ServletContext对象的创建和销毁
java 复制代码
public class MyServletContextListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // 在这里执行一些初始化操作
    }
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        // 在这里执行一些清理操作
    }
}

HttpSessionListener:用于监听HttpSession对象的创建和销毁

java 复制代码
public class MyHttpSessionListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        // 在这里执行一些初始化操作
    }
 
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        // 在这里执行一些清理操作
    }
}

ServletRequestListener:用于监听ServletRequest对象的创建和销毁

java 复制代码
public class MyServletRequestListener implements ServletRequestListener {
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        // 在这里执行一些初始化操作
    }
 
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        // 在这里执行一些清理操作
    }
}
相关推荐
Nyarlathotep0113几秒前
并行设计模式(3):Future模式
java·后端
流星雨在线3 分钟前
汇总:Tomcat 安装与常用配置
java·tomcat
小冷coding25 分钟前
【面试】结合项目整理的场景面试题,覆盖 Java 基础、锁、多线程、数据库、分布式锁 / 事务、消息中间件等核心维度
java·数据库·面试
鬼先生_sir26 分钟前
SpringCloud-GateWay网关
java·spring cloud·gateway
卓怡学长39 分钟前
m319个人网站的设计与实现
java·数据库·spring·tomcat·maven·intellij-idea
Zzj_tju1 小时前
Java 从入门到精通(十二):File 与 IO 流基础,为什么程序“读写文件”时总是容易出问题?
java·python·php
橘子编程2 小时前
操作系统原理:从入门到精通全解析
java·linux·开发语言·windows·计算机网络·面试
飞Link2 小时前
LangGraph 核心架构解析:节点 (Nodes) 与边 (Edges) 的工作机制及实战指南
java·开发语言·python·算法·架构
xuhaoyu_cpp_java2 小时前
Boyer-Moore 投票算法
java·经验分享·笔记·学习·算法
JavaEdge.2 小时前
Chrome加载已解压的扩展程序-清单文件缺失或不可读取 无法加载清单
java