Servlet(ServletContext配置全域性引數、ServletContext方法、屬性檔案中獲取資料庫連線引數)
阿新 • • 發佈:2018-11-28
- 通過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");