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>
复制代码

运行结果

posted @   baimingze  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示