有两种方法,一种是监听(Listener),第二种是配置随项目启动而启动的Servlet。
监听(Listener)
首先,我们创建一个监听的类,继承ServletContextListener,如下
package com.excellence.exportal.portal.common.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.excellence.exportal.portal.common.util.ThemeUtil;
public class DataInitListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent sce) {
ThemeUtil.unZipAllTheme(sce.getServletContext());
System.out.println("===================DataInitListener启动!!!");
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("===================DataInitListener销毁!!!");
}
}
然后,在web.xml中配置如下:
<listener>
<listener-class>
com.excellence.exportal.portal.common.listener.DataInitListener
</listener-class>
</listener>
2·使用Servlet,在项目启动的时候启动它。
首先,创建一个Servlet,继承HttpServlet
package com.excellence.exportal.portal.common.listener;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.excellence.exportal.portal.common.util.ThemeUtil;
public class MyListener extends HttpServlet{
private static final long serialVersionUID = 1L;
public MyListener(){
}
public void init(){
System.out.println("===================MyListener启动!!!");
}
public void doGet(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
throws ServletException, IOException{
}
public void destory(){
}
}
然后,在web.xml中配置
<servlet>
<servlet-name>MyListener</servlet-name>
<servlet-class>com.excellence.exportal.portal.common.listener.MyListener</servlet-class>
<load-on-startup>9</load-on-startup><!-- 数字越小,启动的优先级越高,必须大于0 -->
</servlet>
<servlet-mapping>
<servlet-name>MyListener</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
其中,Listener的方式比任何一个Servlet都要先启动。而Servlet的方式可以设置与其它Servlet启动的顺序。如果有时候需要首先启动一个Servlet或者它们之间的启动顺序有特殊要求的时候就可以用Servlet了。