ServletContextListener使用詳解

在 Servlet API 中有一個 ServletContextListener 接口,它能夠監聽 ServletContext 對象的生命週期,實際上就是監聽 Web 應用的生命週期。

當Servlet 容器啓動或終止Web 應用時,會觸發ServletContextEvent 事件,該事件由ServletContextListener 來處理。在 ServletContextListener 接口中定義了處理ServletContextEvent 事件的兩個方法。

/**
 * 當Servlet 容器啓動Web 應用時調用該方法。在調用完該方法之後,容器再對Filter 初始化,
 * 並且對那些在Web 應用啓動時就需要被初始化的Servlet 進行初始化。
 */
contextInitialized(ServletContextEvent sce)   
/**
 * 當Servlet 容器終止Web 應用時調用該方法。在調用該方法之前,容器會先銷燬所有的Servlet 和Filter 過濾器。
 */
contextDestroyed(ServletContextEvent sce)


一、自定義上下文監聽

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節點裏添加

<listener>
    <listener-class>CmsiListener</listener-class>
</listener>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章