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:

<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);	//設置項目路徑,用於設置絕對路徑
    }
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章