javaweb之监听器Listener
系列文章目录
第一章 javaweb之Servlet接口
第二章 javaweb之ServletRequest请求
第三章 javaweb之ServletResponse响应
第四章 javaweb之请求转发和重定向
第五章 javaweb之过滤器Filter
第六章 javaweb之监听器Listener
文章目录
原文链接 https://zhhll.icu/2021/javaweb/基础/6.监听器/
监听器
Servlet中存在一个EventListener接口,该接口有很多的子接口,如ServletContextListener、HttpSessionListener、ServletRequestListener等
用于监听ServletContext、HttpSession、ServletRequest等对象的创建和销毁,以及属性修改
监听ServletContext、HttpSession、ServletRequest等对象的创建和销毁
- ServletContextListener 服务器启动时创建contextInitialized 服务器正常关闭时销毁contextDestroyed
- HttpSessionListener 第一次访问request.getHttpSession创建sessionCreated 调用invalidate或者过期销毁sessionDestroyed
- ServletRequestListener 每一次访问创建requestInitialized 响应结束销毁requestDestroyed
以ServletContextListener为例
// 当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener处理
public interface ServletContextListener extends EventListener {
// 启动Web应用时调用该方法,该方法结束后才会对Filter进行初始化
void contextInitialized(ServletContextEvent var1);
// web应用终止时调用该方法,该方法在Servlet和Filter销毁之后调用
void contextDestroyed(ServletContextEvent var1);
}
实现相应的接口,监听不同的域对象
<!-- web.xml -->
<listener>
<listener-class>
场景:
ServletContextListener最常用,在当前WEB应用加载的时候对当前WEB应用的相关资源进行初始化操作:创建数据库连接池,创建Spring的IOC容器,读取当前WEB应用的初始化参数
监听域对象 ServletContext、HttpSession、ServletRequest 属性变更的监听器
- ServletContextAttributeListener attributeAdded attributeRemoved attributeReplaced
- HttpSessionAttributeListener attributeAdded attributeRemoved attributeReplaced
- ServletRequestAttributeListener attributeAdded attributeRemoved attributeReplaced
感知session绑定的监听器
保存到Session域中的对象可以有多种状态:绑定到Session中,从Session中解除绑定;随Session对象持久到到一个存储设备中;随Session对象从一个存储设备中恢复
HttpSessionBindingListener和HttpSessionActivationListener接口,实现这两个接口不需要在web.xml文件中注册
放到session中的对象实现HttpSessionBindingListener
会触发两个方法 绑定valueBound 解除valueUnBanding
实现了HttpSessionActivationListener接口的对象可以感知自己被钝化和被活化的事件
sessionWillPassivate 从内存写到磁盘 sessionDisActivate 从磁盘中读取出来
session会被存储在tomcat当前项目下 .cer文件
本文来自博客园,作者:拾光师,转载请注明原文链接:https://www.cnblogs.com/life-time/p/17864390.html 个人博客-> https://zhhll.icu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~