Listener_概述与Listener_ServletContextListener使用
Listener:监听器
* 概念:web的三大组件之一
* 事件:一件事情
* 事件源:事件发生的地方
* 监听器:一个对象
* 注册监听:将事件,事件源,监听器绑定在一起,当事件源发生某个事件后,执行监听器代码
ServletContextListener:监听ServletContext对象的创建和销毁
* 概念:web的三大组件之一
* 事件:一件事情
* 事件源:事件发生的地方
* 监听器:一个对象
* 注册监听:将事件,事件源,监听器绑定在一起,当事件源发生某个事件后,执行监听器代码
ServletContextListener:监听ServletContext对象的创建和销毁
方法:
void contextDestroyed(ServletContextEvent sce):ServletContext对象被销毁之前会调用该方法
void contextInitialized(ServletContextEvent sce):ServletContext对象创建后会调用该方法
步骤:
1.定义一个类,实现ServletContextListener接口
2.复写方法
3.配置
1.web.xml
<!-- 配置监听器 --> <listener> <listener-class>com.example.web.listener.ContextLoaderListener</listener-class> </listener>
指定初始化参数
<!-- 指定初始化参数 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param>
2.ContextLoaderListener 监听实体类
package com.example.web.listener; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ContextLoaderListener implements ServletContextListener { /** * 监听ServletContext对象创建的,ServletContext对象服务器启动后自动创建, * * * 在服务器启动后自动调用 * @param sce */ @Override public void contextInitialized(ServletContextEvent sce) { //加载资源文件 //1.获取ServletContext对象 ServletContext servletContext = sce.getServletContext(); //2.加载资源文件 String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation"); //3.获取真实路径 String realPath = servletContext.getRealPath(contextConfigLocation); //4.加载进内存 try { FileInputStream fis = new FileInputStream(realPath); System.out.println(fis); } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println("ServletContext对象被创建了..."); } /** * 在服务器关闭后,ServletContext对象被销毁,当服务器正常关闭后该方法被调用 * @param sce */ @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext对象被销毁了..."); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)