ServletConfig對象
ServletConfig:封裝了Servlet配置信息,并且可以獲取ServletContext對象。
- 配置Servlet的初始化參數:
<!-- 配置Servlet初始化參數 ,且節點必須在load-on-startup前面-->
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
- 獲取初始化參數:
1) 獲取Servlet的配置名稱(了解):getServletName()
2) getInitParameter(String name):獲取指定參數名的初始化參數
3) getInitParameterNames():獲取參數名組成的Enumeration對象:
Enumeration<String> names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("^^"+ name+ ":" + value);
ServletContext對象
Servlet引擎為每個WEB應用程序都創建一個對應的ServletContext對象,ServletContext被包含在ServletConfig對象中,調用ServletConfig.getServletConfig方法可以返回ServletContext對象的引用。由于一個WEB應用程序中所有Servlet都共享一個ServletContext對象,所以ServletContext對象被稱之為application對象(Web應用程序對象)。
1) 可以由ServletConfig獲取
ServletContext servletContext = servletConfig.getServletContext();
2) 該對象代表當前WEB應用:可以認為ServletContext是當前WEB應用的大管家,可以獲取當前WEB應用的各個方面的信息。
- 配置當前WEB應用的初始化參數(web.xml)
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
- 獲取當前WEB應用的初始化參數方法:
ServletContext servletContext = servletConfig.getServletContext();
String driver = servletContext.getInitParameter("driver");
System.out.println("driver: " + driver);
Enumeration<String> names2 = servletContext.getInitParameterNames();
while(names2.hasMoreElements()){
String name = names2.nextElement();
String value = servletContext.getInitParameter(name);
System.out.println("-->" + name + ":" + value);
}
- 獲取當前WEB應用的某一個文件在服務器上的絕對路徑,而不是部署前的路徑
getRealPath(String path)
String realPath = servletContext.getRealPath("/hello.jsp");
- 獲取當前WEB應用的名稱
getContextPath()
String contextPath = servletContext.getContextPath();
- 獲取當前WEB應用的某一個文件對應的輸入流
getResourceAsStream(String path): path 的 / 為相對于當前WEB應用的根目錄
InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");