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

サーブレットの基本チュートリアル / Servlet HTTP 狀態(tài)碼

Servlet HTTP 狀態(tài)碼

HTTP 請(qǐng)求和 HTTP 響應(yīng)消息的格式是類似的,結(jié)構(gòu)如下:

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

  • 零個(gè)或多個(gè)標(biāo)題行+回車換行符

  • 一個(gè)空白行,即回車換行符

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

例如,服務(wù)器的響應(yīng)頭如下所示:

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)、一個(gè)狀態(tài)碼(在本例中為 200)和一個(gè)對(duì)應(yīng)于狀態(tài)碼的短消息(在本例中為 OK)。

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

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

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

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

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

HTTP 狀態(tài)碼實(shí)例

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

// 導(dǎo)入必需的 java 庫(kù)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

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

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

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