你需要創建一個ServletContextListener
的實施,並在web.xml
文件進行註冊:
ApplicationServletContextListener.java
:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ApplicationServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Application started");
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
}
web.xml
:
<web-app>
<listener>
<listener-class>
com.yourapp.ApplicationServletContextListener
</listener-class>
</listener>
</web-app>
如果使用的servlet 3.0,你也可以只需使用@WebListener
註釋對類進行註釋,而不是將其註冊到您的中文件。
另外,作爲另一個用戶指出,新澤西州包括ApplicationEventListener
,你可以用它來執行操作,一旦應用程序初始化:
MyApplicationEventListener.java
:
public class MyApplicationEventListener implements ApplicationEventListener {
private volatile int requestCount = 0;
@Override
public void onEvent(ApplicationEvent event) {
switch (event.getType()) {
case INITIALIZATION_FINISHED:
System.out.println("Application was initialized.");
break;
case DESTROY_FINISHED:
System.out.println("Application was destroyed.");
break;
}
}
@Override
public RequestEventListener onRequest(RequestEvent requestEvent) {
requestCount++;
System.out.println("Request " + requestCount + " started.");
// return the listener instance that will handle this request.
return new MyRequestEventListener(requestCnt);
}
}
注意,這是不屬於JAX-RS標準的一部分,並且會將您的應用程序與使用Jersey相關聯。
在服務器應用程式執行/類加載是不一樣的控制檯/桌面應用程序,在網絡應用程序,你可以使用ApplicationListener其中有幾件大事,你可能關心的是創建一個實現'ServletContextListener'和聲明一個類它在你的web.xml中 – Yazan