当前位置: 首页 > 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对象被活化时,该方法会被调用。

http://www.lryc.cn/news/332270.html

相关文章:

  • 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分
  • 金蝶Apusic应用服务器 未授权目录遍历漏洞复现
  • 成都百洲文化传媒有限公司电商服务的新领军者
  • 从无到有开始创建动态顺序表——C语言实现
  • Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介
  • 【附下载】2024全行业数字化转型企业建设解决方案PPT合集
  • 【QT+QGIS跨平台编译】056:【pdal_lepcc+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • 蓝桥集训之斐波那契数列
  • 程序员的工资是多少,和曹操有莫大的关系
  • 使用Element Plus
  • 单例(Singleton)设计模式总结
  • LeetCode每日一题之专题一:双指针 ——快乐数
  • Docker Desktop 不支持 host 网络模式
  • Linux网络编程二(TCP图解三次握手及四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)
  • 【云原生篇】K8S之Job 和 CronJob
  • PHP8.3-ZTS版本安装流程以及添加扩展
  • RabbitMQ系统监控、问题排查和性能优化实践
  • 【华为OD机试】根据IP查找城市(贪心算法—JavaPythonC++JS实现)
  • css:阴影效果box-shadow
  • Scala第十九章节(Actor的相关概述、Actor发送和接收消息以及WordCount案例)
  • 蓝桥杯杯赛之深度优先搜索优化《1.分成互质组》 《 2.小猫爬山》【dfs】【深度搜索剪枝优化】【搜索顺序】
  • 软件设计原则:依赖倒置
  • 03-自媒体文章发布
  • Oracle中实现一次插入多条数据
  • 【C++入门】关键字、命名空间以及输入输出
  • 初识MySQL(中篇)
  • 前端订阅后端推送WebSocket定时任务
  • 提高机器人系统稳定性:引入阻尼作为共振后的相位超前
  • 深度学习理论基础(三)封装数据集及手写数字识别
  • vue3+eachrts饼图轮流切换显示高亮数据