在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。
当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。
1
2
3
4
5
6
7
8
9
|
/**
* 当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,
* 并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。
*/
contextInitialized(ServletContextEvent sce)
/**
* 当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。
*/
contextDestroyed(ServletContextEvent sce)
|
一、自定义上下文监听
1
2
3
4
5
6
7
8
9
|
public
class
CmsiListener
implements
ServletContextListener {
private
static
Log log = LogFactory.getLog(CmsiListener.
class
);
public
void
contextInitialized(ServletContextEvent servletContextEvent) {
servletContextEvent.getServletContext().log(
"listener start"
);
}
public
void
contextDestroyed(ServletContextEvent servletContextEvent) {
servletContextEvent.getServletContext().log(
"listener destroyed"
);
}
}
|
二、部署ServletContextListener
实现(implements)了 ServletContextListener 编译后,把它放在正确的WEB-INF/classes目录下,更改WEB-INF目录下的 web.xml文件,在web-app节点里添加
1
2
3
|
<
listener
>
<
listener-class
>CmsiListener</
listener-class
>
</
listener
>
|
本文转自 LinkedKeeper 51CTO博客,原文链接:http://blog.51cto.com/sauron/1272446,如需转载请自行联系原作者