有時候,我們需要僅僅是在服務啟動,而非其他更為復雜的定時任務的時候,做些初始化的工作,比如將一些數據導入到內存中等等,用Servlet的初始化可以很好的做到這一點.而初始化工作是通過Servlet中的init()方法來做的.

  建一個Servlet類:AutoRunServlet.Java(Java教程 Java培訓 ),代碼如下:

  public class AutoRunServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

  public void init() throws ServletException{

  System.out.println(">>你可以在這里初始化一些東西>>");

  String v = this.getInitParameter("a");

  Enumeration e = this.getInitParameterNames();

  while(e.hasMoreElements()){

  System.out.println(">>haha>>"+e.nextElement());

  }

  }

  }

  在web.xml中進行配置:

  

  AutoRunServlet

  AutoRunServlet//類的包路徑

  0

  

  

  

  

  

  

  

  

  0表示Servlet的運行優先級,0表示服務一啟動,Servlet就加載進行初始化

  啟動服務(比如tomcat),在控制臺中就可以看到打印出:

  >>你可以在這里初始化一些東西>>這樣的文字了.

  另外在啟動服務(tomcat)的時候有可能會報某種錯:

  jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class:javax/servlet/Servlet.class

  這一般是你項目中使用的Servlet包與tomcat中帶的包重復了,我使用的是tomcat 6.0.x,如果我在項目中存在著一個Servlet包:servlet-api-2.5-6.1.14.jar,那么這個時候就會報錯,因為在 TOMCAT_HOME/lib下已經存在servlet-api.jar了,所以解決方法就是只保留一個包,比如我將項目下的servlet-api- 2.5-6.1.14.jar刪除,再重啟服務就沒有問題了.