1. 程式人生 > 程式設計 >Java ServletContext物件用法解析

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);
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。