web.xml中配置啟動時加載的servlet,load-on-starup


前陣子一直在搞前端結果搞得自己所學的java相關知識丟得一干二凈。現在重新撿起來的時候,遇到N多問題,所以做筆記先。

這次項目中遇到我想搞清楚的小問題,就是項目加載后一些配置文件的讀取,也就是啟動的時候就將一些配置讀到內存中以待使用。

使用servlet來初始化配置文件數據:

在servlet的配置當中,<load-on-startup>1</load-on-startup>的含義是:

標記容器是否在啟動的時候就加載這個servlet。

當值為0或者大於0時,表示容器在應用啟動時就加載這個servlet;

當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才加載。

正數的值越小,啟動該servlet的優先級越高。

 

web.xml:

 

[plain]  view plain  copy
 
  1. <servlet>  
  2.         <servlet-name>StartServlet</servlet-name>  
  3.         <servlet-class>com.xtown.web.StartServlet</servlet-class>  
  4.         <load-on-startup>1</load-on-startup>  
  5.     </servlet>  



 

servlet代碼:

 

[java]  view plain  copy
 
  1. public class StartServlet extends HttpServlet {  
  2.     private static final long serialVersionUID = 1L;  
  3.   
  4.     public void init() throws ServletException {  
  5.         JDBServlet is = new JDBServlet();  
  6.         is.ConfigFile = this.getClass().getClassLoader()  
  7.                 .getResourceAsStream("conf.xml");   //將文件轉換為輸入流  
  8.         is.start(); //設置從配置文件里讀取過來的數據  
  9.   
  10.         String contextPath = getServletContext().getServletContextName();  
  11.         if (contextPath.endsWith("/"))  
  12.             contextPath = contextPath.substring(0, contextPath.length() - 1);  
  13.         getServletContext().setAttribute("path", "/" + contextPath);    //設置項目路徑,用於設置絕對路徑  
  14.     }  
  15. }  



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM