JSP中HTTP狀態代碼

來源:互聯網
上載者:User

標籤:direct   應該   modified   http   cep   tle   結構   for   ext   

以下內容引用自http://wiki.jikexueyuan.com/project/jsp/http-status-codes.html:

HTTP請求格式和HTTP響應訊息的格式一樣,都有以下結構:

  • 一個初始狀態行+CRLF(斷行符號+換行,即新行)
  • 零個或多個標題列+CRLF
  • 一個空行,即一個CRLF
  • 一個可選的訊息體,像檔案,查詢資料或查詢輸出

例如,一個伺服器響應標題看起來如下所示:

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

狀態行包含HTTP版本(例子中的HTTP/1.1),狀態代碼(例子中的200)和對應狀態碼的短訊息(例子中的OK)。

下面是HTTP狀態碼和相關可能從Web伺服器返回的訊息的一個列表:

編碼: 訊息: 描述:
100 Continue 只有一部分的伺服器請求已經收到,但只要沒有被拒絕,用戶端應該繼續請求
101 Switching Protocols 伺服器交換了協議。
200 OK 請求是OK
201 Created 請求已經完成,新的資源被建立  
202 Accepted 請求被接受處理,但是處理還沒有完成。
203 Non-authoritative Information  
204 No Content  
205 Reset Content  
206 Partial Content  
300 Multiple Choices 一個連結清單。使用者可以選擇一個連結然後跳轉到那個位置。最多可選擇5個地址  
301 Moved Permanently 請求頁面已經被移到新的URL中 
302 Found 請求頁面暫時被移到新的URL中 
303 See Other 請求頁面可在不同的URL中找到 
304 Not Modified  
305 Use Proxy  
306 Unused 該代碼是在前一版本使用的。它已不再使用,但該代碼保留下來了。
307 Temporary Redirect 請求頁面被暫時移到新的URL中。
400 Bad Request 伺服器沒有理解請求。
401 Unauthorized 請求頁面需要使用者名稱和密碼
402 Payment Required 不能使用這個代碼
403 Forbidden 不允許訪問請求頁面
404 Not Found 伺服器找不到請求頁面。
405 Method Not Allowed 在請求中指定的方法不允許使用。
406 Not Acceptable 伺服器只能產生一個不被用戶端接收的響應。
407 Proxy Authentication Required 在這個請求得到服務之前,必須驗證一個Proxy 伺服器。
408 Request Timeout 請求花費的時間比伺服器準備等待的時間長。
409 Conflict 由於衝突請求不能實現。
410 Gone 請求頁面不再可用。
411 Length Required "內容-長度" 沒有被定義。沒有它伺服器不會接受請求。
412 Precondition Failed 伺服器給出給定的請求評估的前提為假。
413 Request Entity Too Large 伺服器不會接受請求,因為請求實體太大。
414 Request-url Too Long 伺服器不會接受請求,因為URL太長。當把“POST”請求轉換為帶有很長的查詢資訊的“GET”請求時,這種情況就會發生
415 Unsupported Media Type 伺服器不會接受請求因為媒體類型不支援。
417 Expectation Failed  
500 Internal Server Error 請求未完成。伺服器遇到了意外情況。
501 Not Implemented 請求未能完成。伺服器不支援所需的功能。
502 Bad Gateway 請求未能完成。伺服器從上遊伺服器收到無效響應
503 Service Unavailable 請求未能完成。伺服器暫時過載或癱瘓。
504 Gateway Timeout 網關逾時。
505 HTTP Version Not Supported 伺服器不支援“HHTP協議”版本。

設定HTTP狀態代碼的方法:

有以下方法可以用來設定 servlet 程式的 HTTP 狀態代碼。有了 HttpServletResponse 對象,這些方法都是可用的。

方法  描述
public void setStatus ( int statusCode ) 此方法設定一個任意的狀態代碼。setStatus方法接受一個 int(狀態代碼)作為參數。如果響應包含一個特殊的狀態代碼和文檔,在實際中用PrintWriter返回任何內容之前一定要調用setStatus。
public void sendRedirect(String url) 該方法產生一個302響應以及一個位置標題給出新文檔的URL。
public void sendError(int code, String message) 這種方法發送一個狀態代碼(通常是404)以及一個在HTML文檔內自動格式化的短訊息並發送到用戶端。

HTTP 狀態代碼執行個體:

下面的例子將發送407錯誤碼到用戶端瀏覽器,瀏覽器將顯示“需要驗證! ! !”的訊息。

<html><head><title>Setting HTTP Status Code</title></head><body><%   // Set error code and reason.   response.sendError(407, "Need authentication!!!" );%></body></html>

現在調用上述代碼,JSP將顯示如下所示的結果:

 

測試工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test6

JSP中HTTP狀態代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.