亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Grundlegendes Servlet-Tutorial / Servlet HTTP 狀態(tài)碼

Servlet HTTP 狀態(tài)碼

HTTP 請求和 HTTP 響應消息的格式是類似的,結構如下:

  • 初始狀態(tài)行 + 回車換行符(回車+換行)

  • 零個或多個標題行+回車換行符

  • 一個空白行,即回車換行符

  • 一個可選的消息主體,比如文件、查詢數(shù)據(jù)或查詢輸出

例如,服務器的響應頭如下所示:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

狀態(tài)行包括 HTTP 版本(在本例中為 HTTP/1.1)、一個狀態(tài)碼(在本例中為 200)和一個對應于狀態(tài)碼的短消息(在本例中為 OK)。

以下是可能從 Web 服務器返回的 HTTP 狀態(tài)碼和相關的信息列表:

代碼消息描述
100Continue只有請求的一部分已經(jīng)被服務器接收,但只要它沒有被拒絕,客戶端應繼續(xù)該請求。
101Switching Protocols服務器切換協(xié)議。
200OK請求成功。
201Created該請求是完整的,并創(chuàng)建一個新的資源。
202Accepted該請求被接受處理,但是該處理是不完整的。
203Non-authoritative Information 
204No Content 
205Reset Content 
206Partial Content 
300Multiple Choices鏈接列表。用戶可以選擇一個鏈接,進入到該位置。最多五個地址。
301Moved Permanently所請求的頁面已經(jīng)轉移到一個新的 URL。
302Found所請求的頁面已經(jīng)臨時轉移到一個新的 URL。
303See Other所請求的頁面可以在另一個不同的 URL 下被找到。
304Not Modified 
305Use Proxy 
306Unused在以前的版本中使用該代碼?,F(xiàn)在已不再使用它,但代碼仍被保留。
307Temporary Redirect所請求的頁面已經(jīng)臨時轉移到一個新的 URL。
400Bad Request服務器不理解請求。
401Unauthorized所請求的頁面需要用戶名和密碼。
402Payment Required您還不能使用該代碼。
403Forbidden禁止訪問所請求的頁面。
404Not Found服務器無法找到所請求的頁面。.
405Method Not Allowed在請求中指定的方法是不允許的。
406Not Acceptable服務器只生成一個不被客戶端接受的響應。
407Proxy Authentication Required在請求送達之前,您必須使用代理服務器的驗證。
408Request Timeout請求需要的時間比服務器能夠等待的時間長,超時。
409Conflict請求因為沖突無法完成。
410Gone所請求的頁面不再可用。
411Length Required"Content-Length" 未定義。服務器無法處理客戶端發(fā)送的不帶 Content-Length 的請求信息。
412Precondition Failed請求中給出的先決條件被服務器評估為 false。
413Request Entity Too Large服務器不接受該請求,因為請求實體過大。
414Request-url Too Long服務器不接受該請求,因為 URL 太長。當您轉換一個 "post" 請求為一個帶有長的查詢信息的 "get" 請求時發(fā)生。
415Unsupported Media Type服務器不接受該請求,因為媒體類型不被支持。
417Expectation Failed 
500Internal Server Error未完成的請求。服務器遇到了一個意外的情況。
501Not Implemented未完成的請求。服務器不支持所需的功能。
502Bad Gateway未完成的請求。服務器從上游服務器收到無效響應。
503Service Unavailable未完成的請求。服務器暫時超載或死機。
504Gateway Timeout網(wǎng)關超時。
505HTTP Version Not Supported服務器不支持"HTTP協(xié)議"版本。

設置 HTTP 狀態(tài)代碼的方法

下面的方法可用于在 Servlet 程序中設置 HTTP 狀態(tài)碼。這些方法通過 HttpServletResponse 對象可用。

序號方法 & 描述
1public void setStatus ( int statusCode )
該方法設置一個任意的狀態(tài)碼。setStatus 方法接受一個 int(狀態(tài)碼)作為參數(shù)。如果您的反應包含了一個特殊的狀態(tài)碼和文檔,請確保在使用 PrintWriter 實際返回任何內容之前調用 setStatus。
2public void sendRedirect(String url)
該方法生成一個 302 響應,連同一個帶有新文檔 URL 的 Location 頭。
3public void sendError(int code, String message)
該方法發(fā)送一個狀態(tài)碼(通常為 404),連同一個在 HTML 文檔內部自動格式化并發(fā)送到客戶端的短消息。

HTTP 狀態(tài)碼實例

下面的例子把 407 錯誤代碼發(fā)送到客戶端瀏覽器,瀏覽器會顯示 "Need authentication!!!" 消息。

// 導入必需的 java 庫
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

// 擴展 HttpServlet 類
public class showError extends HttpServlet {
 
  // 處理 GET 方法請求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 設置錯誤代碼和原因
      response.sendError(407, "Need authentication!!!" );
  }
  // 處理 POST 方法請求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

現(xiàn)在,調用上面的 Servlet 將顯示以下結果:

HTTP Status 407 - Need authentication!!!

type Status report

message Need authentication!!!

description The client must first authenticate itself with the proxy (Need authentication!!!).

Apache Tomcat/5.5.29