前陣子一直在搞前端結果搞得自己所學的java相關知識丟得一干二凈。現在重新撿起來的時候,遇到N多問題,所以做筆記先。
這次項目中遇到我想搞清楚的小問題,就是項目加載后一些配置文件的讀取,也就是啟動的時候就將一些配置讀到內存中以待使用。
使用servlet來初始化配置文件數據:
在servlet的配置當中,<load-on-startup>1</load-on-startup>的含義是:
標記容器是否在啟動的時候就加載這個servlet。
當值為0或者大於0時,表示容器在應用啟動時就加載這個servlet;
當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才加載。
正數的值越小,啟動該servlet的優先級越高。
web.xml:
- <servlet>
- <servlet-name>StartServlet</servlet-name>
- <servlet-class>com.xtown.web.StartServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
servlet代碼:
- public class StartServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- public void init() throws ServletException {
- JDBServlet is = new JDBServlet();
- is.ConfigFile = this.getClass().getClassLoader()
- .getResourceAsStream("conf.xml"); //將文件轉換為輸入流
- is.start(); //設置從配置文件里讀取過來的數據
- String contextPath = getServletContext().getServletContextName();
- if (contextPath.endsWith("/"))
- contextPath = contextPath.substring(0, contextPath.length() - 1);
- getServletContext().setAttribute("path", "/" + contextPath); //設置項目路徑,用於設置絕對路徑
- }
- }