/** * ServletContext對象學習 * 問題: * 不同的用戶使用相同的數據 * 解決: * ServletContext對象 * 特點: * 伺服器創建 * 用戶共用 * 作用域: * 整個項目內 * 生命周期: * 伺服器啟動到伺服器關閉 * 使用: * 獲取ServletCont ...
/**
* ServletContext對象學習
* 問題:
* 不同的用戶使用相同的數據
* 解決:
* ServletContext對象
* 特點:
* 伺服器創建
* 用戶共用
* 作用域:
* 整個項目內
* 生命周期:
* 伺服器啟動到伺服器關閉
* 使用:
* 獲取ServletContext對象
* //第一種方式:
ServletContext sc=this.getServletContext();
//第二種方式:
ServletContext sc2=this.getServletConfig().getServletContext();
//第三種方式:
ServletContext sc3=req.getSession().getServletContext();
* 使用ServletCOntext對象完成數據共用
* sc.setAttribute(String,Object);
* sc.getAttribute(String) 返回的是Object
* 註意:
* ` 不同的用戶可以給ServletContext對象進行數據的存取
* 獲取的數據不存在返回Null
* //獲取項目web.xml的全局配置數據
*
* //配置方式:註意一組<context-param>標簽只能存儲一組鍵值對數據,多組可以聲明多個<context-param>進行存儲
* <!-- 配置全局數據 -->
<context-param>
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</context-param>
String str=sc.getInitParameter(String name);根據鍵的名字返回web.xml中配置的全局數據的值
sc.getInitParameterNames();返回鍵名的枚舉
作用:將靜態數據和代碼進行解耦
* //獲取項目webroot下的資源的絕對路徑
* //String pathString="D:\apache-tomcat\apache-tomcat-7.0.56\webapps\\sc\\doc\\1.txt";
* 獲取的路徑為項目的根目錄,path參數為項目根目錄中的路徑
* String path=sc.getRealPath(Stirng path);
* //獲取webroot下的資源的流對象
* InputStream is=sc.getResourceAsStream(String path);
* 註意:
* 此種方式只能獲取項目根目錄的下的資源流對象,class文件的流對象需要使用類載入器獲取
* path參數為項目跟目錄的中的路徑
*
* @author Administrator
*
*/
public class ServletContextServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//獲取ServletContext對象
//第一種方式:
ServletContext sc=this.getServletContext();
//第二種方式:
ServletContext sc2=this.getServletConfig().getServletContext();
//第三種方式:
ServletContext sc3=req.getSession().getServletContext();
System.out.println(sc==sc2);
System.out.println(sc2==sc3);
//使用ServletContext對象完成數據共用
//數據存儲
sc.setAttribute("str","ServletContext對象學習");
//獲取項目web.xml的全局配置數據
String str=sc.getInitParameter("name");
System.out.println("全局配置參數:"+str);
//獲取項目根目錄下的資源的絕對路徑
//String pathString="D:\apache-tomcat\apache-tomcat-7.0.56\webapps\\sc\\doc\\1.txt";
String path=sc.getRealPath("/doc/1.txt");
System.out.println(path);
//獲取項目根目錄下資源的流對象
InputStream is=sc.getResourceAsStream("/doc/1.txt");
}
}