1, ContextLoaderListener
ContextLoaderListener implements ServletContextListener private ContextLoader contextLoader; // 这个方法在Web应用服务做好接受请求的时候被调用。 public void contextInitialized(ServletContextEvent event) { this.contextLoader = createContextLoader(); this.contextLoader.initWebApplicationContext(event.getServletContext()); } public void contextDestroyed(ServletContextEvent event) { if (this.contextLoader != null) { this.contextLoader.closeWebApplicationContext(event.getServletContext()); } }
ServletContextListener的用法。这个事件类作为Web应用服务的一部分,处理Web应用的 servlet上下文(context)的变化的通知。这可以解释为,好像有个人在服务器旁不断地通知我们服务器在发生什么事件。那当然需要监听者了。因此,在通知上下文(context)初始化和销毁的时候,ServletContextListner非常有用
ServletContextListener接口有两方需要实现的方法:
contextInitialized()和contextDestroyed();
我们可以利用这个特性初始化一些信息,当然我们也可以利用Servlet类init()方法,并在配置文件中让它启动应用的时候
就执行,并且在关闭的时候执行destroy()方法.但是继承此接口应该更符合容器的应用.
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
//对于实现了Servlet 2.2规范的Web容器而言,只能够使用ContextLoaderServlet。对于一些实现了Servlet 2.3规//范的Web容器而言,也可以使用ContextLoaderListener。
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>