Listener概述和Listener_ServletContextListener使用

Listener监听器:

  • 概念:web的三大组件之一

    • 事件监听机制
      • 事件:一件事情
      • 事件源:事件发生的地方
      • 监听器:一个对象
      • 注册监听:将事件、事件源、监听器绑定在一起。当事件源上发生某个事情后,执行监听器代码
  • ServletContextListener:监听ServletContext对象的创建和销毁

    • void contextDestroyed(ServletContextEvent sce):ServletContext对象被销毁之前会调用该方法
    • void contextInitialized(ServletContextEvent sce):ServletContext对象创建后会调用该方法
  • 步骤:

    • 定义一个类,实现ServletContextListener接口
    • 复写方法
    • 配置
      • web.xml
      • 注解
package com.ailyt.listener;

import lombok.SneakyThrows;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.FileInputStream;

@WebListener
public class ListenerStudy01 implements ServletContextListener {

    /**
     * 在初始化servlet上下文时(部署Web应用程序时)调用此方法。
     * @param sce
     */
    @SneakyThrows
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //加载资源文件
        ServletContext servletContext = sce.getServletContext();
        String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");
        String realPath = servletContext.getRealPath(contextConfigLocation);
        FileInputStream fis = new FileInputStream(realPath);
        System.out.println(fis);

        fis.close();
        System.out.println("ServletContext对象被创建了");
    }

    /**
     * 当servlet Context被取消部署或Application Server关闭时调用。
     * @param sce
     */
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext对象被销毁了");
    }

}

image

posted @ 2022-08-18 15:24  我滴妈老弟  阅读(37)  评论(0)    收藏  举报