1. 程式人生 > >Servlet(ServletContext配置全域性引數、ServletContext方法、屬性檔案中獲取資料庫連線引數)

Servlet(ServletContext配置全域性引數、ServletContext方法、屬性檔案中獲取資料庫連線引數)

  • 通過ServletContext物件獲取資料庫全域性配置在web.xml中的連線引數的值
    配置檔案web.xml中的程式碼
<!-- 這是全域性的資料庫連線引數配置 -->
  <context-param>
  	<param-name>driver</param-name>
  	<param-value>com.mysql.jdbc.Driver</param-value>
  </context-param>
  <context-param>
  	<param-name>url</param-name>
  	<param-value>jdbc:mysql://localhost:3306/copy</param-value>
  </context-param>
  <context-param>
  	<param-name>user</param-name>
  	<param-value>root</param-value>
  </context-param>
  <context-param>
  	<param-name>password</param-name>
  	<param-value>root</param-value>
  </context-param>
//通過ServletContext物件獲取資料庫連線引數的值,在配置檔案web.xml檔案中,
   獲取整個應用的全域性引數配置。
   			//通過servlet當前物件this獲取ServletContext物件
			ServletContext context = this.getServletContext();
			//使用getInitParamemeter(String name)方法,根據引數名獲取引數值
			driver = context.getInitParameter("driver");
			url = context.getInitParameter("url");
			user = context.getInitParameter("user");
			password = context.getInitParameter("password");
this.getServletContext().getInitParameter(name);//根據指定的引數名獲取引數值
this.getServletContext().getInitParameterNames();//獲取所有引數名稱列表
this.getServletContext().getRealPath(path),根據相對路徑獲取伺服器上資源的絕對路徑
this.getServletContext().getResourceAsStream(path),根據相對路徑獲取伺服器上資源的輸入位元組流
  • ServletContext
    ServletContext官方叫servlet上下文。伺服器會為每一個工程建立一個物件,這個物件就是ServletContext物件。這個物件全域性唯一,而且工程內部的所有servlet都共享這個物件。所以叫全域性應用程式共享物件。
    servletContext是一個域物件,是伺服器在記憶體上建立的儲存空間,用於在不同動態資源(servlet)之間傳遞與共享資料。
setAttribute(name,value);name是String型別,value是Object型別; 往域物件裡面新增資料,新增時以key-value形式新增
getAttribute(name); 根據指定的key讀取域物件裡面的資料
removeAttribute(name); 根據指定的key從域物件裡面刪除資料
  • servletContext儲存資料特點
    全域性共享,裡面的資料所有動態資源都可以寫入和獲取,伺服器啟動的時候建立,伺服器關閉的時候銷燬,因為這是全域性應用程式物件,全域性共享物件。
    -在屬性檔案中獲取資料庫連線引數
    屬性檔案 jdbc.properties 建立在工程的src目錄下
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/copy
user= root
password = root
		String driver = "";
		String url = "";
		String user= "";
		String password = "";
		
		//從jdbc.properties屬性檔案中獲取資料庫連線引數的值
		//獲取屬性檔案物件
		Properties pro = new Properties();
		//獲取輸入流物件,傳入屬性檔案的路徑
		InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/jdbc.properties");
		//載入
		pro.load(is);
		//根據鍵獲取值
		driver = pro.getProperty("driver");
		url = pro.getProperty("url");
		user = pro.getProperty("user");
		password = pro.getProperty("password");