Listener

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

    事件监听机制

      事件:一件事情

      事件源:事件发生的地方

      监听器:一个对象

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

2  ServletContextListener:监听ServletContext对象的创建和销毁

   方法:

     void contextDestroyed(ServletContextEvent sce):ServletContext对象被销毁之前会调用该方法

     void contextInitialized(ServletContextEvent sce):ServletContext对象创建后会调用该方法

  

   步骤:

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

      2  复写方法

      3  配置

        1  web.xml

        2  注解

package listener;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class listener implements ServletContextListener{

    @Override
    //在服务器关闭后,ServletContext对象被销毁,当服务器正常关闭后,该方法被调用
    public void contextDestroyed(ServletContextEvent sce) {
        // TODO Auto-generated method stub
        System.out.println("ServletContext对象被销毁了");
    }

    @Override
    //监听ServletContext对象创建的,ServletContext对象服务器启动后自动创建
    //在服务器启动后自动调用
    public void contextInitialized(ServletContextEvent sce) {
        // TODO Auto-generated method stub
        
        //加载资源文件
        //1  获取ServletContext对象
        ServletContext servletContext=sce.getServletContext();
        
        //2  加载资源文件
        String contextConfigLocation=servletContext.getInitParameter("初始化参数");
        
        //3  获取真实路径
        String realPath=servletContext.getRealPath(contextConfigLocation);
        
        //4  加载进内存
        try {
            FileInputStream fis=new FileInputStream(realPath);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        System.out.println("ServletContext对象被创建了");
    }

    
}

 

posted @ 2022-03-09 19:47  Cuora  阅读(47)  评论(0)    收藏  举报