天天看點

接口介紹-Servlet Context

安裝在一個伺服器中的一個特定url名字空間(比如,/myapplication)下的所有servlet,jsp,javabean等web部件的集合構成了一個web的應用,每一個web應用(同一jvm),容器都會有一個背景對象,而javax.servlet.servlet context接口就提供了通路這個背景對象的途徑。你可以通過一個servlet執行個體的getservlet context方法得到該servlet運作其中的這個背景對象。從這個背景對象中你可以通路如下資訊或資源:

◆初始化參數

◆存儲在背境中的對象

◆與本背景關聯的資源

◆日志

可以調用servlet context.getinitparameternames()傳回一個初始化參數的枚舉對象(java.util.enumeration),或直接指定一個參數名來得到特定的參數值:servlet context.getinitparameter(string name)。

另外,在servlet的背景中還可以存放與特定名字綁定的任意類型的對象,比如:

context.setattribute(string name, object object);

将把object對象綁定到名字name,存放在servlet背景中,可供同一背景中的其他servlet共享。其他servlet可以通過context.getattribute(string name),得到一個背景中的對象,或通過context.removeattribute(string name)在背景中移除一個對象。

一個特定資源的url可以通過調用servlet context.getresource(string path)得到,這兒的path參數必須以“/”開始,将被解析為相對于目前servlet背景的根的相對路徑。這個方法有别于基于類加載器的java.lang.class.getresource方法。如果你通過servlet context.getresource方法請求了一個.jsp頁面,你得到的将是jsp的源碼,要得到執行結果,可以使用requestdispatcher對象的include方法。你也可以直接以輸入流的形式得到資源,

public inputstream getresourceasstream(string path);

servlet context提供了日志的支援,你可以簡單的通過調用servlet context.log(string msg),或servlet context.log(string msg,throwable throwable)方法,向底層的servlet日志記錄寫入日志資訊,後者還可寫入異常資訊和throwable的跟蹤棧