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

Tutoriel de base sur les servlets / 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ù)器接收,但只要它沒(méi)有被拒絕,客戶端應(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禁止訪問(wèn)所請(qǐng)求的頁(yè)面。
404Not Found服務(wù)器無(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)闆_突無(wú)法完成。
410Gone所請(qǐng)求的頁(yè)面不再可用。
411Length Required"Content-Length" 未定義。服務(wù)器無(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í)體過(guò)大。
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ù)器收到無(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)碼。這些方法通過(guò) 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