ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。
该接口有两个接口方法:
void contextInitialized(ServletContextEvent var1);
Servlet 容器启动初始化时触发。在调用完该方法之后,容器再对Filter 初始化,并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化
void contextDestroyed(ServletContextEvent var1);
Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。
Spring的实现:
ContextLoaderListener 启动时,Servlet 容器加载spring容器;终止时销毁spring容器。
WebAppRootListener
EnvironmentLoaderListener shiro
Log4jConfigListener log4j
我们自己实现:
启动时加载一些资源,终止时清楚或者持久化这些资源。
操作方式:
1 获取 ServletContext context=sce.getServletContext();
2 设置值 context.setAttribute("key",value);
3.获取值 context.getAttribute("key")
4.Controller中操作使用这些资源, 首先Controller必须 extends HttpServlet
5. 在方法中: ServletContext context=getServletConfig().getServletContext();
6. 获取值 context.getAttribute("key")
注意要想生效:必须在web.xml中配置 listener。