一、HttpServletRequest介面
定義
public interface HttpServletRequest extends ServletRequest;
用來處理一個對Servlet的HTTP格式的請求信息.
方法
1、getAuthType
public String getAuthType();
返回這個請求的身份驗證模式.
2、getCookies
public Cookie[] getCookies();
返回一個數組,該數組包含這個請求中當前的所有cookie.如果這個請求中沒有cookie,返回一個空數組.
3、getDateHeader
public long getDateHeader(String name);
返回指定的請求頭域的值,這個值被轉換成一個反映自1970-1-1日(GMT)以來的精確到毫秒的長整數.
如果頭域不能轉換,拋出一個IllegalArgumentException.如果這個請求頭域不存在,這個方法返回-1.
4、getHeader
public String getHeader(String name);
返回一個請求頭域的值.(譯者註:與上一個方法不同的是,該方法返回一個字元串)
如果這個請求頭域不存在,這個方法返回-1.
5、getHeaderNames
public Enumeration getHeaderNames();
該方法返回一個String對象的列表,該列表反映請求的所有頭域名.
有的引擎可能不允許通過這種方法訪問頭域,在這種情況下,這個方法返回一個空的列表.
6、getIntHeader
public int getIntHeader(String name);
返回指定的請求頭域的值,這個值被轉換成一個整數.
如果頭域不能轉換,拋出一個IllegalArgumentException.如果這個請求頭域不存在,這個方法返回-1.
7、getMethod
public String getMethod();
返回這個請求使用的HTTP方法(例如:GET、POST、PUT)
8、getPathInfo
public String getPathInfo();
這個方法返回在這個請求的URL的Servlet路徑之後的請求URL的額外的路徑信息.如果這個請求URL包括一個查詢字元串,在返回值內將不包括這個查詢字元串.這個路徑在返回之前必須經過URL解碼.如果在這個請求的URL的Servlet路徑之後沒有路徑信息.這個方法返回空值.
9、getPathTranslated
public String getPathTranslated();
這個方法獲得這個請求的URL的Servlet路徑之後的額外的路徑信息,並將它轉換成一個真實的路徑.在進行轉換前,這個請求的URL必須經過URL解碼.如果在這個URL的Servlet路徑之後沒有附加路徑信息.這個方法返回空值.
10、getQueryString
public String getQueryString();
返回這個請求URL所包含的查詢字元串.一個查詢字串符在一個URL中由一個「?」引出.如果沒有查詢字元串,這個方法返回空值.
11、getRemoteUser
public String getRemoteUser
返回作了請求的用戶名,這個信息用來作HTTP用戶論證.
如果在請求中沒有用戶名信息,這個方法返回空值.
12、getRequestedSessionId
public String getRequestedSessionId();
返回這個請求相應的session id.如果由於某種原因客戶端提供的session id是無效的,這個session id將與在當前session中的session id不同,與此同時,將建立一個新的session.
如果這個請求沒與一個session關聯,這個方法返回空值.
13、getRequestURI
public String getRequestURI();
從HTTP請求的第一行返回請求的URL中定義被請求的資源的部分.如果有一個查詢字元串存在,這個查詢字元串將不包括在返回值當中.例如,一個請求通過 /catalog/books?id=1這樣的URL路徑訪問,這個方法將返回/catalog/books.這個方法的返回值包括了Servlet路徑和路徑信息.
如果這個URL路徑中的的一部分經過了URL編碼,這個方法的返回值在返回之前必須經過解碼.
14、getServletPath
public String getServletPath();
這個方法返回請求URL反映調用Servlet的部分.例如,一個Servlet被映射到/catalog/summer這個URL路徑,而一個請求使用了/catalog/summer/casual這樣的路徑.所謂的反映調用Servlet的部分就是指/catalog/summer.
如果這個Servlet不是通過路徑匹配來調用.這個方法將返回一個空值.
15、getSession
public HttpSession getSession();
public HttpSession getSession(boolean create);
返回與這個請求關聯的當前的有效的session.如果調用這個方法時沒帶參數,那麼在沒有session與這個請求關聯的情況下,將會新建一個session.如果調用這個方法時帶入了一個布爾型的參數,只有當這個參數為真時,session才會被建立.
為了確保session能夠被完全維持.Servlet開發者必須在響應被提交之前調用該方法.
如果帶入的參數為假,沒有session與這個請求關聯.這個方法會返回空值.
16、isRequestedSessionIdValid
public boolean isRequestedSessionIdValid();
這個方法檢查與此請求關聯的session當前是不是有效.如果當前請求中使用的session無效,它將不能通過getSession方法返回.
17、isRequestedSessionIdFromCookie
public boolean isRequestedSessionIdFromCookie();
如果這個請求的session id是通過客戶端的一個cookie提供的,該方法返回真,否則返回假.
18、isRequestedSessionIdFromURL
public boolean isRequestedSessionIdFromURL();
如果這個請求的session id是通過客戶端的URL的一部分提供的,該方法返回真,否則返回假.請注意此方法與isRequestedSessionIdFromUrl在URL的拼寫上不同.
以下方法將被取消
19、isRequestedSessionIdFromUrl
public boolean isRequestedSessionIdFromUrl();
該方法被isRequestedSessionIdFromURL代替.
二、HttpServletResponse介面
定義
public interface HttpServletResponse extends ServletResponse
描述一個返回到客戶端的HTTP回應.這個介面允許Servlet程序員利用HTTP協議規定的頭信息.
成員變數
public static final int SC_CONTINUE = 100;
public static final int SC_SWITCHING_PROTOCOLS = 101;
public static final int SC_OK = 200;
public static final int SC_CREATED = 201;
public static final int SC_ACCEPTED = 202;
public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
public static final int SC_NO_CONTENT = 204;
public static final int SC_RESET_CONTENT = 205;
public static final int SC_PARTIAL_CONTENT = 206;
public static final int SC_MULTIPLE_CHOICES = 300;
public static final int SC_MOVED_PERMANENTLY = 301;
public static final int SC_MOVED_TEMPORARILY = 302;
public static final int SC_SEE_OTHER = 303;
public static final int SC_NOT_MODIFIED = 304;
public static final int SC_USE_PROXY = 305;
public static final int SC_BAD_REQUEST = 400;
public static final int SC_UNAUTHORIZED = 401;
public static final int SC_PAYMENT_REQUIRED = 402;
public static final int SC_FORBIDDEN = 403;
public static final int SC_NOT_FOUND = 404;
public static final int SC_METHOD_NOT_ALLOWED = 405;
public static final int SC_NOT_ACCEPTABLE = 406;
public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
public static final int SC_REQUEST_TIMEOUT = 408;
public static final int SC_CONFLICT = 409;
public static final int SC_GONE = 410;
public static final int SC_LENGTH_REQUIRED = 411;
public static final int SC_PRECONDITION_FAILED = 412;
public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
public static final int SC_REQUEST_URI_TOO_LONG = 414;
public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
public static final int SC_INTERNAL_SERVER_ERROR = 500;
public static final int SC_NOT_IMPLEMENTED = 501;
public static final int SC_BAD_GATEWAY = 502;
public static final int SC_SERVICE_UNAVAILABLE = 503;
public static final int SC_GATEWAY_TIMEOUT = 504;
public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
以上HTTP產狀態碼是由HTTP/1.1定義的.
方法
1、addCookie
public void addCookie(Cookie cookie);
在響應中增加一個指定的cookie.可多次調用該方法以定義多個cookie.為了設置適當的頭域,該方法應該在響應被提交之前調用.
2、containsHeader
public boolean containsHeader(String name);
檢查是否設置了指定的響應頭.
3、encodeRedirectURL
public String encodeRedirectURL(String url);
對sendRedirect方法使用的指定URL進行編碼.如果不需要編碼,就直接返回這個URL.之提供這個附加的編碼方法,是在 redirect的情況下,決定是否對URL進行編碼的規則和一般情況有所不同.所給的URL必須是一個絕對URL.相對URL不能被接收,會拋出一個 IllegalArgumentException.
所有提供給sendRedirect方法的URL都應通過這個方法運行,這樣才能確保會話跟蹤能夠在所有瀏覽器中正常運行.
4、encodeURL
public String encodeURL(String url);
對包含session ID的URL進行編碼.如果不需要編碼,就直接返回這個URL.Servlet引擎必須提供URL編碼方法,在有些情況下,我們將不得不重寫URL,例如,在響應對應的請求中包含一個有效的session,但是這個session不能被非URL的(例如cookie)的手段來維持.
所有提供給Servlet的URL都應通過這個方法運行,這樣才能確保會話跟蹤能夠在所有瀏覽器中正常運行.
5、sendError
public void sendError(int statusCode) throws IOException;
public void sendError(int statusCode, String message) throws
IOException;
用給定的狀態碼發給客戶端一個錯誤響應.如果提供了一個message參數,這將作為響應體的一部分被發出,否則,伺服器會返回錯誤代碼所對應的標準信息.
調用這個方法后,響應立即被提交.在調用這個方法后,Servlet不會再有更多的輸出.
6、sendRedirect
public void sendRedirect(String location) throws IOException;
使用給定的路徑,給客戶端發出一個臨時轉向的響應(SC_MOVED_TEMPORARILY).給定的路徑必須是絕對URL.相對URL將不能被接收,會拋出一個IllegalArgumentException.
這個方法必須在響應被提交之前調用.調用這個方法后,響應立即被提交.在調用這個方法后,Servlet不會再有更多的輸出.
7、setDateHeader
public void setDateHeader(String name, long date);
用一個給定的名稱和日期值設置響應頭,這裡的日期值應該是反映自1970-1-1日(GMT)以來的精確到毫秒的長整數.如果響應頭已經被設置,新的值將覆蓋當前的值.
8、setHeader
public void setHeader(String name, String value);
用一個給定的名稱和域設置響應頭.如果響應頭已經被設置,新的值將覆蓋當前的值.
9、setIntHeader
public void setIntHeader(String name, int value);
用一個給定的名稱和整形值設置響應頭.如果響應頭已經被設置,新的值將覆蓋當前的值.
10、setStatus
public void setStatus(int statusCode);
這個方法設置了響應的狀態碼,如果狀態碼已經被設置,新的值將覆蓋當前的值.
以下的幾個方法將被取消
11、encodeRedirectUrl
public String encodeRedirectUrl(String url);
該方法被encodeRedirectURL取代.
12、encodeUrl
public String encodeUrl(String url);
該方法被encodeURL取代.
13、setStatus
public void setStatus(int statusCode, String message);
這個方法設置了響應的狀態碼,如果狀態碼已經被設置,新的值將覆蓋當前的值.如果提供了一個message,它也將會被作為響應體的一部分被發送.
三、HttpSession介面
定義
public interface HttpSession
這個介面被Servlet引擎用來實現在HTTP客戶端和HTTP會話兩者的關聯.這種關聯可能在多外連接和請求中持續一段給定的時間.session用來在無狀態的HTTP協議下越過多個請求頁面來維持狀態和識別用戶.
一個session可以通過cookie或重寫URL來維持.
方法
1、getCreationTime
public long getCreationTime();
返回建立session的時間,這個時間表示為自1970-1-1日(GMT)以來的毫秒數.
2、getId
public String getId();
返回分配給這個session的標識符.一個HTTP session的標識符是一個由伺服器來建立和維持的唯一的字元串.
3、getLastAccessedTime
public long getLastAccessedTime();
返回客戶端一次發出與這個session有關的請求的時間,如果這個session是新建立的,返回-1.這個時間表示為自1970-1-1日(GMT)以來的毫秒數.
4、getMaxInactiveInterval
public int getMaxInactiveInterval();
返加一個秒數,這個秒數表示客戶端在不發出請求時,session被Servlet引擎維持的最長時間.在這個時間之後,Servlet引擎可能被Servlet引擎終止.如果這個session不會被終止,這個方法返回-1.
當session無效后再調用這個方法會拋出一個IllegalStateException.
5、getValue
public Object getValue(String name);
返回一個以給定的名字綁定到session上的對象.如果不存在這樣的綁定,返回空值.
當session無效后再調用這個方法會拋出一個IllegalStateException.
6、getValueNames
public String[] getValueNames();
以一個數組返回綁定到session上的所有數據的名稱.
當session無效后再調用這個方法會拋出一個IllegalStateException.
7、invalidate
public void invalidate();
這個方法會終止這個session.所有綁定在這個session上的數據都會被清除.並通過HttpSessionBindingListener介面的valueUnbound方法發出通告.
8、isNew
public boolean isNew();
返回一個布爾值以判斷這個session是不是新的.如果一個session已經被伺服器建立但是還沒有收到相應的客戶端的請求,這個session將被認為是新的.這意味著,這個客戶端還沒有加入會話或沒有被會話公認.在他發出下一個請求時還不能返回適當的session認證信息.
當session無效后再調用這個方法會拋出一個IllegalStateException.
9、putValue
public void putValue(String name, Object value);
以給定的名字,綁定給定的對象到session中.已存在的同名的綁定會被重置.這時會調用HttpSessionBindingListener介面的valueBound方法.
當session無效后再調用這個方法會拋出一個IllegalStateException.
10、removeValue
public void removeValue(String name);
取消給定名字的對象在session上的綁定.如果未找到給定名字的綁定的對象,這個方法什麼出不做. 這時會調用HttpSessionBindingListener介面的valueUnbound方法.
當session無效后再調用這個方法會拋出一個IllegalStateException.
[火星人 ] Java Servlet API中文說明文檔二(1)已經有593次圍觀