概念
事件监听机制
事件 : 一件事情
事件源 : 事件发生的地方
监听器 : 一个对象
注册监听 : 将事件 , 事件源 , 监听器绑在一起. 当事件源发生某个事件后, 执行监听器代码
ServletContextListener:
监听ServletContext对象的创建和销毁
步骤:
- 定义一个类,实现ServletContextListener接口
- 复写方法
- 配置
package listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@WebListener
public class ContextLoaderListener implements ServletContextListener {
/**
* 监听ServletContext对象的创建, 在服务器启动后自动创建
* 在服务器启动后自动调用
* @param servletContextEvent
*/
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
//加载资源文件
//1.获取servletContextEvent对象
ServletContext servletContext = servletContextEvent.getServletContext();
//2.加载资源文件
String initParameter = servletContext.getInitParameter("");
//3.获取真实路径
String realPath = servletContext.getRealPath(initParameter);
//4.加载进内存
try {
FileInputStream fis=new FileInputStream(realPath);
System.out.println(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("ServletContext对象被创建了...");
}
/**
*在服务器被关闭后,ervletContextEvents对象被销毁. 当服务器正常关闭后该方法被调用
* @param servletContextEvent
*/
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext对象被销毁了...");
}
}