Listener:监听器
- 概念:web三大组件之一
- 事件监听机制
- 事件:一件事情
- 事件源:事件发生的地方
- 监听器:一个对象
- 注册监听:将事件、事件源、监听器、绑定在一起。当事件源上法生某个事件后,执行监听器代码
- ServletContextListener:监听ServletContext对象的创建和销毁
- 方法:
void contextDestroyed(ServletContextEvent sce)
:ServletContext对象被销毁之前会调用该方法void contextInitialized(ServletContextEvent sce)
:ServletContext对象被创建后会调用该方法
- 步骤:
- 定义一个类,实现ServletContextListener接口
- 复写方法
- 配置
- web.xml
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5fe300e5f2c62877e38380d9d19d39ce.png#pic_center)
- 注解 :
@WebListener
- 指定初始化参数:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/65af5769fee823d12fbf1a9c0be55577.png#pic_center)
package cn.itcast.web.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{
@Override
public void contextInitialized(ServletContextEvent sce) {
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 (Exception e){
e.printStackTrace();
}
System.out.println("ServletContext对象被创建了");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext对象被销毁了");
}
}