概念
web的三大组件之一。
事件监听机制:
* 事件:一件事情
* 事件源:事情发生的地方
* 监听器:一个对象
* 注册监听:将事件、事件源、监听器绑定在一起。
当事件源发生发生某个事件后,执行监视器代码。
ServletContextListener
监听ServletContext对象的创建和销毁
方法
void contextDestoryed(ServletContextEvent sce):
ServletContext对象销毁之前会调用此方法。
void contextInitialized(ServletContextEvent sce) :
ServletContext对象创建前会调用此方法。
步骤
定义一个类,实现ServletContextListener接口
复写方法
配置
1. web.xml
1 2 3 4 5 6 7 8 9 10
| <listener> <listener-class>com.web.listener.ContextLoaderLitsener</listener-class> </listener>
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param>
|
注解设置
同Servlet和Filter一样在前面加入注解
监听器代码
加载配置文件进内存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| package com.web.listener;
import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.FileInputStream; import java.io.FileNotFoundException;
public class ContextLoaderLitsener implements ServletContextListener {
@Override public void contextInitialized(ServletContextEvent servletContextEvent) { ServletContext servletContext = servletContextEvent.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被创建了。。。");
}
@Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext被销毁了。。。"); } }
|