Listener概述和Listener ServletContextListener使用

Listener概述

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

  事件监听机制

    事件  :一件事情

    事件源 :事件发生的地方

    监听器 :一个对象

    注册监听:将事件、事件源、监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码

ServletContextListener:监听ServletContext对象的创建和销毁
  void contextInitialized(ServletContextEvent sce) : ServletContext对象创建之后会调用该方法
  void contextDestroyed(ServletContextEvent sce) : ServletContext对象被销毁之前会调用该方法

Listener ServletContextListener使用

 步骤:

  1.定义一个类,实现ServletContextListener接口

  2.复写方法

  3.配置

    1.web.xml:

    <listener>
        <listener-class>com.peng.ca.web.listener.ContextContextListener</listener-class>
    </listener>

    2.注解:@WebListener

ContextContextListener:

@WebListener
public class ContextContextListener implements ServletContextListener {
    /**
     * 监听ServletContext对象创建的。ServletContext对象服务器启动后自动创建
     *
     * 在服务器启动后自动调用
     * @param sce
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //加载资源文件
        //获取ServletContext对象
        ServletContext servletContext = sce.getServletContext();
        //加载资源文件
        String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");
        //获取真实路径
        String realPath = servletContext.getRealPath(contextConfigLocation);
        //加载进内存
        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对象被销毁了");
    }
}

web.xml

    <!--配置监听器-->
    <listener>
        <listener-class>com.peng.ca.web.listener.ContextContextListener</listener-class>
    </listener>
    <!--指定初始化参数-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applic.xml</param-value>
    </context-param>

 

 

 

 

posted @ 2022-08-18 16:38  魔光领域  阅读(24)  评论(0编辑  收藏  举报