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

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

  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中進(jìn)行配置:

  

  AutoRunServlet

  AutoRunServlet//類的包路徑

  0

  

  

  

  

  

  

  

  

  0表示Servlet的運(yùn)行優(yōu)先級,0表示服務(wù)一啟動(dòng),Servlet就加載進(jìn)行初始化

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

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

  另外在啟動(dòng)服務(wù)(tomcat)的時(shí)候有可能會(huì)報(bào)某種錯(cuò):

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

  這一般是你項(xiàng)目中使用的Servlet包與tomcat中帶的包重復(fù)了,我使用的是tomcat 6.0.x,如果我在項(xiàng)目中存在著一個(gè)Servlet包:servlet-api-2.5-6.1.14.jar,那么這個(gè)時(shí)候就會(huì)報(bào)錯(cuò),因?yàn)樵?TOMCAT_HOME/lib下已經(jīng)存在servlet-api.jar了,所以解決方法就是只保留一個(gè)包,比如我將項(xiàng)目下的servlet-api- 2.5-6.1.14.jar刪除,再重啟服務(wù)就沒有問題了.