程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Servlet初始化:隨服務器啟動而運行

Servlet初始化:隨服務器啟動而運行

編輯:關於JAVA

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

建一個Servlet類:AutoRunServlet.Java,代碼如下:

  1. public class AutoRunServlet extends HttpServlet {
  2. private static final long serialVersionUID = 1L;
  3. public void init() throws ServletException{
  4. System.out.println(">>你可以在這裡初始化一些東西>>");
  5. String v = this.getInitParameter("a");
  6. Enumeration e = this.getInitParameterNames();
  7. while(e.hasMoreElements()){
  8. System.out.println(">>haha>>"+e.nextElement());
  9. }
  10. }
  11. }

在web.XML中進行配置:

  1. <servlet>
  2. <servlet-name>AutoRunServlet</servlet-name>
  3. <servlet-class>AutoRunServlet</servlet-class>//類的包路徑
  4. <load-on-startup>0</load-on-startup>
  5. <init-param>
  6. <param-name>a</param-name>
  7. <param-value>傳入的參數值1</param-value>
  8. </init-param>
  9. <init-param>
  10. <param-name>b</param-name>
  11. <param-value>傳入的參數值2</param-value>
  12. </init-param>

</servlet><load-on-startup>0</load-on-startup>表示Servlet的運行優先級,0表示服務一啟動,Servlet就加載進行初始化

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

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

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

  1. 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刪除,再重啟服務就沒有問題了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved