有时候,我们需要仅仅是在服务启动,而非其他更为复杂的定时任务的时候,做些初始化的工作,比如将一些数据导入到内存中等等,用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删除,再重启服务就没有问题了.