当前位置: 首页 > news >正文

Listener

文章目录

  • Listener
    • ServletContextListener
    • ServletContextAttributeListener
    • HttpSessionListener
    • HttpSessionAttributeListener
    • ServletRequestListener
    • ServletRequestAttributeListener
    • HttpSessionBindingListener
    • HttpSessionActivationListener

Listener

Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器。

监听器的作用是,监听某种变化(一般就是对象创建/销毁, 属性变化), 触发对应方法完成相应的任务。

ServletContextListener

作用:监听 ServletContext 创建或销毁(当我们 Web 应用启动时,就会创建 ServletContext),即生命周期监听。

应用场景:

1)加载初始化的配置文件;比如 spring 的配置文件

2)任务调度(配合定时器 Timer/TimerTask)

相关方法:

void contextInitialized(ServletContextEvent sce) 创建 Servletcontext 时触发

voidcontextDestroyed(ServletContextEvent sce) 销毁 Servletcontext 时触发

public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent servletContextEvent) {System.out.println("ServletContext 被创建");}@Overridepublic void contextDestroyed(ServletContextEvent servletContextEvent) {System.out.println("ServletContext 被销毁");}
}

在web.xml中配置:

<listener><listener-class>com.lhs.listener.MyServletContextListener</listener-class>
</listener>

ServletContextAttributeListener

作用:监听 ServletContext 属性变化

相关方法:

void attributeAdded(ServletContextAttributeEvent event) 添加属性时调用

void attributeReplaced(ServletContextAttributeEvent event) 替换属性时调用

void attributeRemoved(ServletContextAttributeEvent event) 移除属性时调用

public class MyServletContextAttributeListener implements ServletContextAttributeListener {@Overridepublic void attributeAdded(ServletContextAttributeEvent event) {System.out.println("添加属性成功:" + event.getName() + "=" + event.getValue());}@Overridepublic void attributeRemoved(ServletContextAttributeEvent event) {System.out.println("移除属性成功:" + event.getName() + "=" + event.getValue());}@Overridepublic void attributeReplaced(ServletContextAttributeEvent event) {System.out.println("修改属性成功:" + event.getName() + "=" + event.getValue());}
}

配置:

<listener><listener-class>com.lhs.listener.MyServletContextAttributeListener</listener-class>
</listener>

HttpSessionListener

作用:监听 Session 创建或销毁,即生命周期监听

相关方法:

void sessionCreated(HttpSessionEvent se) 创建 session 时调用

void sessionDestroyed(HttpSessionEvent se) 销毁 session 时调用

HttpSessionAttributeListener

作用:监听 Session 属性的变化

相关方法:

void attributeAdded(ServletRequestAttributeEvent srae) 添加属性时调用

void attributeReplaced(ServletRequestAttributeEvent srae) 替换属性时调用

void attributeRemoved(ServletRequestAttributeEvent srae) 移除属性时调用

ServletRequestListener

作用:监听 Request 创建或销毁,即 Request 生命周期监听

相关方法:

void requestInitialized(ServletRequestEvent sre) 创建 request 时调用

void requestDestroyed(ServletRequestEvent sre) 销毁 request 时调用

ServletRequestAttributeListener

作用:监听 Request 属性变化

相关方法:

void attributeAdded(ServletRequestAttributeEvent srae) 添加属性时调用

void attributeReplaced(ServletRequestAttributeEvent srae) 替换属性时调用

HttpSessionBindingListener

作用:监听HttpSession对象中的属性绑定和解绑事件。当向HttpSession对象中绑定或解绑属性时,会触发相应的事件。

相关个方法:

valueBound(HttpSessionBindingEvent event):当一个对象被绑定到HttpSession对象中时,该方法会被调用。

valueUnbound(HttpSessionBindingEvent event):当一个对象从HttpSession对象中解绑时,该方法会被调用。

HttpSessionActivationListener

作用:监听HttpSession对象的活化和钝化事件。当HttpSession对象被活化(从内存中加载到服务器中)或钝化(从服务器中保存到内存中)时,会触发相应的事件。

相关方法:

sessionWillPassivate(HttpSessionEvent se):当HttpSession对象即将被钝化时,该方法会被调用。

sessionDidActivate(HttpSessionEvent se):当HttpSession对象被活化时,该方法会被调用。

相关文章:

Listener

文章目录 ListenerServletContextListenerServletContextAttributeListenerHttpSessionListenerHttpSessionAttributeListenerServletRequestListenerServletRequestAttributeListenerHttpSessionBindingListenerHttpSessionActivationListener Listener Listener 监听器它是 J…...

单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分

单细胞RNA测序&#xff08;scRNA-seq&#xff09;入门可查看以下文章&#xff1a; 单细胞RNA测序&#xff08;scRNA-seq&#xff09;工作流程入门 单细胞RNA测序&#xff08;scRNA-seq&#xff09;细胞分离与扩增 1. NCBI查询scRNA-seq SRA数据 NCBI地址&#xff1a; https…...

金蝶Apusic应用服务器 未授权目录遍历漏洞复现

0x01 产品简介 金蝶Apusic应用服务器(Apusic Application Server,AAS)是一款标准、安全、高效、集成并具丰富功能的企业级应用服务器软件,全面支持JakartaEE8/9的技术规范,提供满足该规范的Web容器、EJB容器以及WebService容器等,支持Websocket1.1、Servlet4.0、HTTP2.0…...

成都百洲文化传媒有限公司电商服务的新领军者

在当今数字化时代&#xff0c;电商行业正以前所未有的速度蓬勃发展。在这个大背景下&#xff0c;成都百洲文化传媒有限公司凭借其深厚的行业经验和精湛的专业技能&#xff0c;正迅速崛起为电商服务领域的新领军者。 一、专业引领&#xff0c;成就卓越 作为一家专注于电商服务的…...

从无到有开始创建动态顺序表——C语言实现

顺序表的概念 顺序表的底层结构是数组&#xff0c;对数组的封装&#xff0c;实现了常用的增删改查等接口。在物理结构和逻辑结构都是连续的&#xff0c;物理结构是指顺序表在计算机内存的存储方式&#xff0c;逻辑结构是我们思考的形式&#xff0c;顺序表和数组是类似的&#x…...

Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介

Unix网络编程是针对类Unix操作系统&#xff08;包括Linux、BSD以及其他遵循POSIX标准的操作系统&#xff09;进行网络通信开发的技术领域。网络编程涉及创建和管理网络连接、交换数据以及处理不同层次网络协议栈上的各种网络事件。在Unix环境中&#xff0c;网络编程通常涉及到以…...

【附下载】2024全行业数字化转型企业建设解决方案PPT合集

精品推荐&#xff0c;2024全行业数字化转型企业建设解决方案PPT合集&#xff0c;精品PPT源格式共21份。 以下是资料目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a; 1.制造业数字化转型解决方案及应用.pptx 2.医院数字化网络解决方案.pptx 3.食品饮料工厂数字…...

【QT+QGIS跨平台编译】056:【pdal_lepcc+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_lepcc介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_lepcc介绍 pdal_lepcc 是 PDAL(Point Data Abstraction Library)的一个插件,用于点云数据的压缩。它基于 EPCC(Entwine Point Cloud Compression)算法,提供了对点…...

蓝桥集训之斐波那契数列

蓝桥集训之斐波那契数列 核心思想&#xff1a;矩阵乘法 将原本O(n)的递推算法优化为O(log2n) 构造1x2矩阵f和2x2矩阵a 发现f(n1) f(n) * a 则f(n1) f(1) * an可以用快速幂优化 #include <iostream>#include <cstring>#include <algorithm>using na…...

程序员的工资是多少,和曹操有莫大的关系

曹操是谁大家都知道了吧&#xff0c;他是三国时期的一个有名的大老板&#xff0c;谁知道曹操的工资是多少呢&#xff1f;这个其实也不好说&#xff0c;有时候曹操赚很多的钱&#xff0c;有时候也亏血本&#xff0c;甚至连脑袋都差点掉了。创业不容易啊&#xff0c;曹老板也是如…...

使用Element Plus

1. 官网安装 安装 | Element Plus (gitee.io) 安装&#xff1a; npm install element-plus --save 在main.ts中全局注册ElementPlus并使用 //加入element-plus import ElementPlus from element-plus; //加入element-plus样式 import element-plus/dist/index.css; import…...

单例(Singleton)设计模式总结

1. 设计模式概述&#xff1a; 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。 就像是经典的棋谱&#xff0c;不同的棋局&#xff0c;我们用不同的棋谱。"套路"经典的设计模式一共有…...

LeetCode每日一题之专题一:双指针 ——快乐数

快乐数OJ链接&#xff1a;202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 题目分析: 为了房便叙述&#xff0c;将「对于⼀个正整数&#xff0c;每⼀次将该数替换为它每个位置上的数字的平方和」这⼀个 操作记为 x 操作&#xff1b; 题目告诉我们&#…...

Docker Desktop 不支持 host 网络模式

先把这个结论的放在前面&#xff0c;直接访问链接就能看到官方文档中已经明确说了不支持。 参考链接&#xff1a;docker desktop for windows 不支持 host 网络模式 以前对于 docker 的网络模式&#xff0c;一直只是了解&#xff0c;没有亲自尝试过。结果今天在尝试 docker 的 …...

Linux网络编程二(TCP图解三次握手及四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

文章目录 1、TCP三次握手(1) 第一次握手(2) 第二次握手(3) 第三次握手 2、TCP四次挥手(1) 一次挥手(2) 二次挥手(3) 三次挥手(4) 四次挥手 3、TCP滑动窗口4、TCP状态时序图5、多进程并发服务器6、多线程并发服务器 1、TCP三次握手 TCP三次握手(TCP three-way handshake)是TCP协…...

【云原生篇】K8S之Job 和 CronJob

在 Kubernetes (K8s) 中&#xff0c;Job 和 CronJob 是两种管理批处理任务的资源对象&#xff0c;它们用于控制短暂的一次性任务&#xff08;Job&#xff09;或定时执行的周期性任务&#xff08;CronJob&#xff09;。 Job 概念 Job 负责运行一个或多个 Pod&#xff0c;并确…...

PHP8.3-ZTS版本安装流程以及添加扩展

下载php-8.3.x.tar.gz至服务器并解压 [rootapisix-test php-8.3.4]# wget https://www.php.net/distributions/php-8.3.4.tar.gz进入目录执行编译命令&#xff0c;必须要带 --enable-zts 才能激活zts功能 [rootapisix-test php-8.3.4]# ./configure --prefix/usr/local/p…...

RabbitMQ系统监控、问题排查和性能优化实践

一、系统监控&#xff1a;RabbitMQ的各项性能指标及监控 Message Rates&#xff1a;消息率包含了publish&#xff0c;deliver/get&#xff0c;ack等方面的数据&#xff0c;反映了消息在系统中流转的情况。Queue Length&#xff1a;队列长度反映了系统当前的负载情况。如果队列…...

【华为OD机试】根据IP查找城市(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…...

css:阴影效果box-shadow

属性 box-shadow 属性值由四个参数组成&#xff1a; 水平偏移量&#xff1a;表示阴影相对于元素的水平位置。垂直偏移量&#xff1a;表示阴影相对于元素的垂直位置。模糊度&#xff1a;表示阴影的模糊程度。颜色&#xff1a;表示阴影的颜色 示例 单个box-shadow 0px -2px 6p…...

为什么你的低代码应用在MCP 2026沙箱环境总报“ContextNotBound”错误?(附官方未公开的调试模式启用密钥)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ContextNotBound错误的本质与MCP 2026沙箱的上下文生命周期模型 错误根源解析 ContextNotBound 是 MCP 2026 沙箱运行时的核心异常之一&#xff0c;表明当前执行线程试图访问一个尚未被显式绑定&#…...

PyTorch加速Transformer训练:torch.compile与梯度累积实战

1. 加速Transformer模型训练的两大核心技术在深度学习领域&#xff0c;Transformer架构已经成为自然语言处理任务的事实标准。然而&#xff0c;随着模型规模的不断扩大&#xff0c;训练时间成本急剧上升。以典型的Llama模型为例&#xff0c;即使在高端GPU上完成一次完整训练也可…...

手把手教你用微软官方工具制作Win10纯净版安装U盘(附保姆级图文流程)

微软官方工具制作Win10纯净安装U盘全流程指南 当电脑运行缓慢、频繁崩溃或感染顽固病毒时&#xff0c;重装系统往往是最彻底的解决方案。与第三方工具相比&#xff0c;微软官方提供的MediaCreationTool不仅能确保系统镜像的纯净性&#xff0c;还能自动获取最新版本和关键安全更…...

【MCP 2026边缘部署黄金法则】:20年架构师亲授7步极简优化流程,错过再等三年

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;MCP 2026边缘部署的范式跃迁 MCP&#xff08;Model Control Plane&#xff09;2026标志着边缘智能基础设施从静态编排向动态语义驱动的范式跃迁。传统边缘部署依赖预置规则与固定拓扑&#xff0c;而MCP…...

【企业级Dev Container流水线标准】:基于OCI 1.1规范的轻量化镜像构建策略,让团队接入速度提升3.8倍

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VS Code 远程容器开发环境 (Dev Containers) 优化 如何实现快速接入 Dev Containers 是 VS Code 提供的标准化容器化开发方案&#xff0c;通过 .devcontainer/devcontainer.json 定义可复现、即开即用…...

从“人工缝合”到“流水线发车”:聊聊我们团队引入Jenkins后,开发和运维吵架次数少了80%的真实故事

从“人工缝合”到“流水线发车”&#xff1a;我们团队引入Jenkins后的真实蜕变 凌晨三点的办公室&#xff0c;咖啡杯堆成了小山。开发老张和运维小李正对着屏幕上一片红色的报错信息面面相觑——这是本月第三次因为测试环境配置问题导致上线延期。老张的代码在本地跑得飞快&…...

长沙心理医院暖心指南+真实案例分享

随着社会节奏加快&#xff0c;心理健康问题逐渐成为影响个人生活质量与社会和谐的重要因素。在长沙&#xff0c;作为中部核心城市&#xff0c;心理疾病就诊需求持续攀升&#xff0c;但与此同时&#xff0c;患者在就医过程中仍面临诸多挑战。据相关统计显示&#xff0c;长沙市居…...

面试必备,查漏补缺;多线程 +spring+JVM 调优 + 分布式 +redis+ 算法

前言春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们 Java 程序员的面试之路&#xff0c;是挺难的&#xff0c;过了 HR&#xff0c;还得被技术面&#xff0c;鄙人在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终侥…...

pdftotext:Python PDF文本提取的高效解决方案

pdftotext&#xff1a;Python PDF文本提取的高效解决方案 【免费下载链接】pdftotext Simple PDF text extraction 项目地址: https://gitcode.com/gh_mirrors/pd/pdftotext 在日常数据处理工作中&#xff0c;PDF文档的文本提取常常成为开发者的痛点。传统的复制粘贴方式…...

如何用Stream-Translator实现直播实时翻译?完整部署指南

如何用Stream-Translator实现直播实时翻译&#xff1f;完整部署指南 【免费下载链接】stream-translator 项目地址: https://gitcode.com/gh_mirrors/st/stream-translator Stream-Translator是一款专为开发者设计的实时音频翻译工具&#xff0c;能够高效处理直播流中的…...