Listener监视器
Listener监视器
概念:web的三大组件之一
- 事件监听机制
- 事件:一件事情
- 事件源:事件发生的地方
- 监听器:一个对象
- 注册监听:将事件、事件源、监听器绑定在一起 当事件源上发生某个事件后 执行监听器代码
- ServletContextListener:监听ServletContext对象的创建和销毁
- 方法
- void contextDestroyed(ServletContextEvent sce):ServletContext对象被销毁之前会被调用该方法
- void contextInitialized(ServletContextEvent sce):ServletContext对象创建会调用该方法
- 步骤
- 定义一个类 实现ServletContextListener接口
- 复写方法
- 配置
- web.xml
- 注解
- 方法
监视器代码
package com.bai.listener; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import java.io.FileInputStream; @WebListener public class ContextLoaderListener implements ServletContextListener { /** * 监听ServletContext对象创建 ServletContext对象服务器启动后自动创建 * *在服务器启动后自动调用 * @param servletContextEvent */ public void contextInitialized(ServletContextEvent servletContextEvent) { //加载资源文件 //获取ServletContext对象 ServletContext servletContext = servletContextEvent.getServletContext(); //加载资源文件 String initParameter = servletContext.getInitParameter("applicationContext.xml"); //获取真实路径 String realPath = servletContext.getRealPath(initParameter); //加载进内存 try{ FileInputStream fis = new FileInputStream(realPath); System.out.println(fis); }catch (Exception e){ e.printStackTrace(); } System.out.println("ServletContext对象被创建了..."); } /** * 在服务器关闭后 ServletContext对象被销毁 当服务器正常关闭后该方法调用 * @param servletContextEvent */ public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("ServletContext对象被销毁了..."); } }
配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--配置监听器--> <listener> <listener-class>com.bai.listener.ContextLoaderListener</listener-class> </listener> <!--指定初始化参数--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/applicationContext.xml</param-value> </context-param> </web-app>
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!