8.ServletContext
1).能夠由ServletConfig獲取, ServletContext
context=arg0.getServletContext();
2).該對象表明當前WEB應用:能夠認爲ServletContext是當前Web應用的一個大管家,能夠獲取當前WEB應用的各方面信息
<!-- 配置當前WEB應用的初始化參數-->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///lee</param-value>
</context-param>
<servlet>
.......
</servlet>
<servlet>
.......
</servlet>
它是和servlet節點是並列的,是當前站點的全局信息。
它一樣能夠獲取這些配置信息,不過它獲取的是全局配置信息,而當前的ServletConfig是獲取當前的Servlet的信息
Enumeration <String> names=context.getInitParameterNames();
換句話說,任何一個Servlet均可以獲取這個全局信息。
3)獲取站點目錄下的資源的絕對路徑
方法一
String path=context.getRealPath("/hello.jsp"); 將得到hello.jsp在服務器上發佈以後的真正路徑。 /hello.jsp是其在這個項目中的根目錄下的路徑
InputStream inputStream=context.getResourceAsStream("/WEN-INF/classes/test.txt");
String path=context.getRealPath("/WEN-INF/classes/test.txt");
路徑只能寫成/hello.jsp這種形式,\\不行
然而若是是src下的文件路徑,假設src下有test.txt這樣一個文件,若是想得到它的真正路徑,寫成 /WEB-INF/classes/test.txt,由於src下的文件都會被放到/WEN-INF/classes/test.txt的目錄下,換言之,服務器加載完這個項目開始運行後,根本不存在src目錄。
說明這個方法獲得的都是服務器上的絕對路徑,而不是部署前的路徑
方法二
類加載器:
ClassLoader classLoader=this.getClass().getClassLoader(); InputStream inputStream=classLoader.getResourceAsStream("test.txt");