這個J2EE小提示闡述了ServletContextListener的用法。這個事件類作爲Web應用服務的一部分,處理Web應用的 servlet上下文(context)的變化的通知。這可以解釋爲,好像有個人在服務器旁不斷地通知我們服務器在發生什麼事件。那當然需要監聽者了。因此,在通知上下文(context)初始化和銷燬的時候,ServletContextListner非常有用。
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.*;
public class MyListener implements ServletContextListener {
private ServletContext context = null;
public void contextDestroyed(ServletContextEvent event){
//Output a simple message to the server's console
System.out.println("The Simple Web App. Has Been Removed");
this.context = null;
}
// 這個方法在Web應用服務做好接受請求的時候被調用。
public void contextInitialized(ServletContextEvent event){
this.context = event.getServletContext();
//Output a simple message to the server's console
System.out.println("The Simple Web App. Is Ready");
}
}
<web-app>
<listener>
<listener-class>
com.listeners.MyContextListener
</listener-class>
</listener>
<servlet/>
<servlet-mapping/>
</web-app>
ServletContextListener接口有兩方需要實現的方法:
contextInitialized()和contextDestroyed();
Listener,譯爲監聽者.顧名思義,它會監聽Servlet容器,當應用開始的時候它會調用contextInitialized()方法;
當應用關閉的時候,它同樣會調用contextDestroyed()方法.
我們可以利用這個特性初始化一些信息,當然我們也可以利用Servlet類init()方法,並在配置文件中讓它啓動應用的時候
就執行,並且在關閉的時候執行destroy()方法.但是繼承此接口應該更符合容器的應用.