ServletContext
【ServletContext的5大作用】
1.獲取web的上下文路徑
String getContextPath();
2.獲取全局的參數
String getInitParameter(String name);
Enumeration getInitParameterNames();
3.和域對象相關的
void setAttribute(String name,Onject object);
Object getAttribute(String name);
void removeAttribute(String name);
域對象(域對象就是在不同資源之前來共享數據,保存數據,獲取數據)
ServletContext是我們學習的第一個域對象(Servlet共有三個域對象ServletContext、HttpServletRequest、HttpSession)
4. 請求轉發的
RequestDispatcher getRequestDispatcher(String path);
在Servlet跳轉頁面:
4.1請求重定向(你找我借錢,我沒有,你自己去找他借錢)
1.地址欄會改變,變成重定向到的地址
2.可以跳轉到項目內的資源,也可以跳轉項目外的資源
3.瀏覽器向服務器發出兩次請求,那麼不能使用請求來作爲域對象來共享數據。
4.2請求轉發(你找我借錢,我沒有,我幫你去向他借錢)
1.地址欄不會改變
2.只能跳轉到項目內的資源,不能跳轉項目外的資源。
3.瀏覽器向服務器發出一次請求,那麼可以使用請求作爲域對象共享數據。
5.讀取web項目的資源文件
String getRealPath(String path);
InputStream getResourceAsStream(String path);
URL getResource(String path);
ServletConfig
在Servlet的配置文件中,可以使用一個或多個<init-param>標籤爲servlet配置一些初始化參數。
當servlet配置了初始化參數後,web容器在創建servlet實例對象時,會自動將這些初始化參數封裝到ServletConfig對象中,並在調用servlet的init方法時,將ServletConfig對象傳遞給servlet。進而,程序員通過ServletConfig對象就可以得到當前servlet的初始化參數信息。
閱讀ServletConfig API,並舉例說明該對象的作用:
獲得字符集編碼
獲得數據庫連接信息
獲得配置文件,查看struts案例的web.xml文件
WEB容器在啓動時,它會爲每個WEB應用程序都創建一個對應的ServletContext對象,它代表當前web應用。
ServletConfig對象中維護了ServletContext對象的引用,開發人員在編寫servlet時,可以通過ServletConfig.getServletContext方法獲得ServletContext對象。
由於一個WEB應用中的所有Servlet共享同一個ServletContext對象,因此Servlet對象之間可以通過ServletContext對象來實現通訊。ServletContext對象通常也被稱之爲context域對象。
查看ServletContext API文檔,瞭解ServletContext對象的功能。
ServletContext應用
多個Servlet通過ServletContext對象實現數據共享。
獲取WEB應用的初始化參數。
實現Servlet的轉發。
利用ServletContext對象讀取資源文件。
得到文件路徑
讀取資源文件的三種方式
.properties文件(屬性文件)