Java ServletContext物件用法解析
ServletContext物件:
ServletContext類似位元組碼檔案物件,在web建立的時候就自動生成了,並且是唯一的,跟隨著專案和伺服器共存亡了。通過這個物件,我們可以向裡面存資料(鍵值對),也可以通過別的Servlet來獲取這個資料;也可以根據相對(伺服器)路徑繼來獲取絕對路徑。
ServletContext代表是一個web應用的環境(上下文)物件,ServletContext物件內部封裝是該web應用的資訊,ServletContext物件一個web應用只有一個。 一個web應用有幾個servlet物件?----多個
ServletContext物件的生命週期?
建立:該web應用被載入(伺服器啟動或釋出web應用(前提,伺服器啟動狀態))
銷燬:web應用被解除安裝(伺服器關閉,移除該web應用)
獲得ServletContext物件:
第一種:Servlet的init方法中獲得ServletConfig 初始化方法
ServletContext servletContext = config.getServletContext ();
第二種:
ServletContext servletContext = config.getServletContext ();
ServletContext的作用:
獲得web應用中任何資源的絕對路徑(重要 重要 重要)
String path = context.getRealPath(相對於該web應用的相對地址);
public class Servlet01 extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { //獲取ServletContext物件 ServletContext context =getServletContext(); //獲取相對於伺服器的相對路徑獲取絕對路徑 String patha=context.getRealPath("WEB-INF/classes/a.txt"); String pathb=context.getRealPath("b.txt"); String pathc=context.getRealPath("WEB-INF/c.txt"); //d.txt建立在WEB04檔案下,不會在伺服器上找到的。以後靜態資源建立在WebContent下,專案檔案、配置檔案在src下 System.out.println(patha); System.out.println(pathb); System.out.println(pathc); } public void doPost(HttpServletRequest request,IOException { doGet(request,response); }
ServletContext是一個域物件(儲存資料的區域):
儲存資料的區域就是域物件;
ServletContext域物件的作用範圍:整個web應用(所有的web資源都可以隨意向 servletcontext域中存取資料,資料可以共享)
域物件的通用的方法:
setAtrribute(String name,Object obj); k是字串 value是obj型別
getAttribute(String name); 強轉
removeAttribute(String name);
public class Serlvlet03 extends HttpServlet { public void doGet(HttpServletRequest request,IOException { //獲取ServletContext物件 ServletContext context=getServletContext(); //獲取ServletContext域中的值 String name=(String)context.getAttribute("name"); response.getWriter().write(name); } public void doPost(HttpServletRequest request,response); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。