一、什么是Listener监听器?
1.Listener监听器是javaweb的三大组件之一;javaweb的三大组件分别是:servlet,filter过滤器,listener监听器。
2.Listener是JavaEE的规范,就是接口。
3.作用是监听某种事务的变化,然后通过回调函数反馈给用户(或程序)去做一些相应的处理。
ServletContextListener监听器
监听器本来有八种,但是现在基本上只有这一种有用了
ServletContextListener可以监听ServletContext对象的创建和销毁
ServletContext对象在web工程启动的时候创建,在web工程停止的时候销毁。
监听到创建和销毁之后都会分别调用ServletContextListener监听器的方法反馈。
源码
public interface ServletContextListener extends EventListener {
/**
* 在ServletContext对象被创建以后马上调用,做初始化
*/
public void contextInitialized(ServletContextEvent sce);
/**
* 在ServletContext对象被销毁后调用
*/
public void contextDestroyed(ServletContextEvent sce);
}
此接口中提供了两个方法,用于监听ServletContext 的创建和销毁,也就是监听ServletContext 的生命周期,可以说成是监听Web 应用的生命周期,当web应用启动后,就会触发ServletContextEvent 事件,当此事件执行时,就会被ServletContextListener 监听器监听到,会调用他的contextInitialized(ServletContextEvent sce) 方法,通过sce 可以获取ServletContext 实例,初始化一些数据,例如缓存的应用,如,创建数据库连接,读取数据库数据,通过setAttribute(“”,obj) 方法设置数据,然后就是可通过servlet 获取servletContext 的实例,通过getAttribute(“”) 获取设置的数据
使用步骤如下:
1.编写一个类去实现ServletContextListener <br /> 2.实现其两个回调的方法<br /> 3.到web.xml中去配置监听器
代码实现
public class MyContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
System.out.println("ServletContext被创建");
}
public void contextDestroyed(ServletContextEvent event) {
System.out.println("ServletContext被销毁");
}
如果是web 项目 最后一步是使 ServletContext 生效,需要在web.xml 中配置监听器,并且web.xml 把它放在正确的WEB-INF/classes目录下
1. <listener>
2. <listener-class>MyServletContextListener</listener-class>
3. </listener>