- Servlet--ServletContext接口
定義public interface ServletContext
定義了一個 Servlet 的環境對象,通過這個對象,Servlet 引擎向 Servlet 提供環境資訊。一個 Servlet 的環境對象必須至少與它所駐留的主機是一一對應的。在一個處理多個虛拟主機的 Servlet 引擎中(例如,使用了 HTTP1.1 的主機 頭域) ,每一個虛拟主機必須被視為一個單獨的環境。此外,Servlet 引擎還可以建立對應于一組 Servlet 的環境對象。
方法
1、getAttribute
public Object getAttribute(String name);
傳回 Servlet 環境對象中指定的屬性對象。如果該屬性對象不存在,傳回空值。這個方法允許通路有關這個 Servlet 引擎的在該接口的其他方法中尚未提供的附加資訊。
2、getAttributeNames
public Enumeration getAttributeNames();
傳回一個 Servlet 環境對象中可用的屬性名的清單。
3、getContext
public ServletContext getContext(String uripath);
傳回一個 Servlet 環境對象,這個對象包括了特定 URI 路徑的 Servlets 和資源,如果該路徑不存在,則傳回一個空值。URI 路徑格式是/dir/dir/filename.ext。為了安全,如果通過這個方法通路一個受限制的 Servlet 的環境對象,會傳回一個空值 。
4、getMajorVersion
public int getMajorVersion();
傳回 Servlet 引擎支援的 ServletAPI 的主版本号。例如對于 2.1 版,這個方法會傳回一個整數 2。
5、getMinorVersion
public int getMinorVersion();
傳回 Servlet 引擎支援的 ServletAPI 的次版本号。例如對于 2.1 版,這個方法會傳回一個整數 2。
6、getMimeType
public String getMimeType(String file);
傳回指定檔案的 MIME 類型,如果這種 MIME 類型未知,則傳回一個空值。MIME 類型是由 Servlet 引擎的配置決定的。
7、getRealPath
public String getRealPath(String path);
一個符合 URL 路徑格式的指定的虛拟路徑的格式是: /dir/dir/filename.ext。 用這個方法 ,可以傳回與一個符合該格式的虛拟路徑相對應 的真實路徑的 String。這個真實路徑的格式應該适合于運作這個 Servlet 引擎的計算機(包括其相應的路徑解析器) 。
不管是什麼原因, 如果這一從虛拟路徑轉換成實際路徑的過程不能執行, 該方法将會傳回一個空值。
8、getResource
public URL getResource(String uripath);
傳回一個 URL 對象,該對象反映位于給定的 URL 位址(格式:/dir/dir/filename.ext ) 的Servlet 環境對象已知的資源。 無論 URLStreamHandlers 對于通路給定的環境是不是必須的 ,Servlet 引擎都必須執行。如果給定的路徑的 Servlet 環境沒有已知的資 源,該方法會傳回一個空值。這個方法和 java.lang.Class 的 getResource 方法不完全相同。 java.lang.Class 的
getResource 方法通過裝載類來尋找資源。而這個方法允許伺服器産生環境變量給任何資源的任何 Servlet, 而不必依賴于裝載類、特定區域等等。
9、getResourceAsStream
public InputStream getResourceAsStream(String uripath);
傳回一個 InputStream 對象,該對象引用指定的 URL 的 Servlet 環境對象的内容。如果沒找到 Servlet 環境變量,就會傳回空值,URL 路徑應該具有這種格式:/dir/dir/filename.ext 。這個方法是一個通過 getResource 方法獲得 URL 對象的友善的途徑。請注意,當你使用這個方法時,meta-information(例如内容長度、内容類型)會丢失。
10、getRequestDispatcher
public RequestDispatcher getRequestDispatcher(String uripath);
如果這個指定的路徑下能夠找到活動的資源(例如一個 Servlet,JSP 頁面,CGI 等等)就傳回一個特定 URL 的RequestDispatcher 對象,否則,就傳回一個空值,Servlet 引擎負責用一個 request dispatcher 對象封裝目标路徑。這個 request dispatcher 對象可以用來完全請求的傳送。
11、getServerInfo
public String getServerInfo();
傳回一個 String 對象,該對象至少包括 Servlet 引擎的名字和版本号。
12、log
public void log(String msg);
public void log(String msg, Throwable t);
public void log(Exception exception, String msg); // 這種用法将被取消
寫指定的資訊到一個 Servlet 環境對象的 log 檔案中。被寫入的 log 檔案由 Servlet 引擎指定,但是通常這是一個事件 log。當這個方法被一個異常調用時,log 中将包括堆棧跟蹤 。
13、setAttribute
public void setAttribute(String name, Object o);
給予 Servlet 環境對象中你所指定的對象一個名稱。
14、removeAttribute
public void removeAttribute(String name);
從指定的 Servlet 環境對象中删除一個屬性。
注:以下幾個方法将被取消
15、getServlet
public Servlet getServlet(String name) throws ServletException;
最初用來傳回一個指定名稱的 Servlet,如果沒找到就傳回一個空值。如果這個 Servlet能夠傳回,這就意味着它已經被初始化,而且已經可以接受 service 請求。這是一個危險的方法。當調用這個方法時,可能并不知道 Servlet 的狀态,這就可能導緻有關伺服器狀态的問題。而允許一個 Servlet 通路其他 Servlet 的這個方法也同樣的危險。現在這個方法傳回一個空值, 為了保持和以前版本的相容性, 現在這個方法還沒有被取消。在以後的 API 版本中,該方法将被取消。
16、getServletNames
public Enumeration getServletNames();
最初用來傳回一個 String 對象的清單,該清單表示了在這個 Servlet 環境下所有已知的Servlet 對象名。這個清單總是包含這個 Servlet 自身。基于與上一個方法同樣的理由,這也是一個危險的方法。現在這個方法傳回一個空的清單。 為了保持和以前版本的相容性, 現在這個方法還沒有被取消。在以後的 API 版本中,該方法将被取消。
17、getServlets
public Enumeration getServlets();
最初用來傳回在這個 Servelet 環境下所有已知的 Servlet 對象的清單。這個清單總是包含這個 Servlet 自身。基于與 getServlet 方法同樣的理由,這也是一個危險的方法。現在這個方法傳回一個空的清單。 為了保持和以前版本的相容性, 現在這個方法還沒有被取消。在以後的 API 版本中,該方法将被取消。
這個類一般不怎麼用到,下面貼出這個類的源碼:
package javax.servlet;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Set;
public abstract interface ServletContext
{
public abstract ServletContext getContext(String paramString);
public abstract String getContextPath();
public abstract int getMajorVersion();
public abstract int getMinorVersion();
public abstract String getMimeType(String paramString);
public abstract Set getResourcePaths(String paramString);
public abstract URL getResource(String paramString)
throws MalformedURLException;
public abstract InputStream getResourceAsStream(String paramString);
public abstract RequestDispatcher getRequestDispatcher(String paramString);
public abstract RequestDispatcher getNamedDispatcher(String paramString);
/** @deprecated */
public abstract Servlet getServlet(String paramString)
throws ServletException;
/** @deprecated */
public abstract Enumeration getServlets();
/** @deprecated */
public abstract Enumeration getServletNames();
public abstract void log(String paramString);
/** @deprecated */
public abstract void log(Exception paramException, String paramString);
public abstract void log(String paramString, Throwable paramThrowable);
public abstract String getRealPath(String paramString);
public abstract String getServerInfo();
public abstract String getInitParameter(String paramString);
public abstract Enumeration getInitParameterNames();
public abstract Object getAttribute(String paramString);
public abstract Enumeration getAttributeNames();
public abstract void setAttribute(String paramString, Object paramObject);
public abstract void removeAttribute(String paramString);
public abstract String getServletContextName();
}