Posted on 2006-09-04 09:57
泰仔在線 閱讀(491)
評論(0) 編輯 收藏 所屬分類:
Java 相關(guān)
安裝在服務(wù)器中的每一個特定URL名字空間(又叫虛擬目錄比如,/myWeb)下的所有Servlet,JSP,JavaBean等Web部件的集合構(gòu)成一個Web應(yīng)用,每一個Web應(yīng)用(同一JVM),容器都會有一個背景對象,而javax.servlet.ServletContext接口就提供了訪問這個背景對象的途徑。你可以通過一個Servlet實(shí)例的getServletContext方法得到該Servlet運(yùn)行其中的這個背景對象。從這個背景對象中你可以訪問如下信息或資源:
- 初始化參數(shù)?
- 存儲在背景中的對象
- 與本背景關(guān)聯(lián)的各種資源
- 日志
可以調(diào)用ServletContext.getInitParameterNames()返回一個初始化參數(shù)的枚舉對象(java.util.Enumeration),或直接指定一個參數(shù)名來得到特定的參數(shù)值:ServletContext.getInitParameter(String name)。
另外,在Servlet的背景中還可以存放與特定名字綁定的任意類型的對象,比如:
context.setAttribute(String name, Object object);
將把object對象綁定到名字name,存放在Servlet背景中,可供同一背景中的其他Servlet共享。其他Servlet可以通過context.getAttribute(String name),得到一個背景中的對象,或通過context.removeAttribute(String name)在背景中移除一個對象。
一個特定資源的URL可以通過調(diào)用ServletContext.getResource(String path)得到,這兒的path參數(shù)必須以/開始,將被解析為相對于當(dāng)前Servlet背景的根的相對路徑。這個方法有別于基于類加載器的java.lang.Class.getResource方法。如果你通過ServletContext.getResource方法請求了一個.jsp頁面,你得到的將是JSP的源碼,要得到執(zhí)行結(jié)果,可以使用RequestDispatcher對象的include方法。你也可以直接以輸入流的形式得到資源,
public InputStream getResourceAsStream(String path);
ServletContext提供了日志的支持,你可以簡單的通過調(diào)用ServletContext.log(String msg),或ServletContext.log(String msg,Throwable throwable)方法,向底層的Servlet日志記錄寫入日志信息,后者還可寫入異常信息和throwable的跟蹤棧。
學(xué)習(xí)筆記:ServletContext接口 (http://www.51dibs.com/article_view.asp?id=10471)