Listener概述和Listener ServletContextListener使用
Listener概述
概念:web的三大组件之一。
事件监听机制
事件 :一件事情
事件源 :事件发生的地方
监听器 :一个对象
注册监听:将事件、事件源、监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码
ServletContextListener:监听ServletContext对象的创建和销毁
void contextInitialized(ServletContextEvent sce) : ServletContext对象创建之后会调用该方法
void contextDestroyed(ServletContextEvent sce) : ServletContext对象被销毁之前会调用该方法
Listener ServletContextListener使用
步骤:
1.定义一个类,实现ServletContextListener接口
2.复写方法
3.配置
1.web.xml:
<listener> <listener-class>com.peng.ca.web.listener.ContextContextListener</listener-class> </listener>
2.注解:@WebListener
ContextContextListener:
@WebListener public class ContextContextListener implements ServletContextListener { /** * 监听ServletContext对象创建的。ServletContext对象服务器启动后自动创建 * * 在服务器启动后自动调用 * @param sce */ @Override public void contextInitialized(ServletContextEvent sce) { //加载资源文件 //获取ServletContext对象 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 (FileNotFoundException e) { e.printStackTrace(); } System.out.println("ServletContext对象被创建了"); } /** * 在服务器关闭后,ServletContext对象被销毁。当服务器正常关闭后该方法被调用 * @param sce */ @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext对象被销毁了"); } }
web.xml
<!--配置监听器--> <listener> <listener-class>com.peng.ca.web.listener.ContextContextListener</listener-class> </listener> <!--指定初始化参数--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applic.xml</param-value> </context-param>