jsp在線參考手冊
/ JSP HTTP 狀態(tài)碼
JSP HTTP 狀態(tài)碼
HTTP請求與HTTP響應(yīng)的格式相近,都有著如下結(jié)構(gòu):
以狀態(tài)行+CRLF(回車換行)開始
零行或多行頭模塊+CRLF
一個(gè)空行,比如CRLF
可選的消息體比如文件,查詢數(shù)據(jù),查詢輸出
舉例來說,一個(gè)服務(wù)器響應(yīng)頭看起來就像下面這樣:
HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (Blank Line) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>
下表列出了可能會(huì)從服務(wù)器返回的HTTP狀態(tài)碼和與之關(guān)聯(lián)的消息:
狀態(tài)碼 | 消息 | 描述 |
---|---|---|
100 | Continue | 只有一部分請求被服務(wù)器接收,但只要沒被服務(wù)器拒絕,客戶端就會(huì)延續(xù)這個(gè)請求 |
101 | Switching Protocols | 服務(wù)器交換機(jī)協(xié)議 |
200 | OK | 請求被確認(rèn) |
201 | Created | 請求時(shí)完整的,新的資源被創(chuàng)建 |
202 | Accepted | 請求被接受,但未處理完 |
203 | Non-authoritative Information | |
204 | No Content | |
205 | Reset Content | |
206 | Partial Content | |
300 | Multiple Choices | 一個(gè)超鏈接表,用戶可以選擇一個(gè)超鏈接并訪問,最大支持5個(gè)超鏈接 |
301 | Moved Permanently | 被請求的頁面已經(jīng)移動(dòng)到了新的URL下 |
302 | Found | 被請求的頁面暫時(shí)性地移動(dòng)到了新的URL下 |
303 | See Other | 被請求的頁面可以在一個(gè)不同的URL下找到 |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | 已經(jīng)不再使用此狀態(tài)碼,但狀態(tài)碼被保留 |
307 | Temporary Redirect | 被請求的頁面暫時(shí)性地移動(dòng)到了新的URL下 |
400 | Bad Request | 服務(wù)器無法識(shí)別請求 |
401 | Unauthorized | 被請求的頁面需要用戶名和密碼 |
402 | Payment Required | 目前還不能使用此狀態(tài)碼 |
403 | Forbidden | 禁止訪問所請求的頁面 |
404 | Not Found | 服務(wù)器無法找到所請求的頁面 |
405 | Method Not Allowed | 請求中所指定的方法不被允許 |
406 | Not Acceptable | 服務(wù)器只能創(chuàng)建一個(gè)客戶端無法接受的響應(yīng) |
407 | Proxy Authentication Required | 在請求被服務(wù)前必須認(rèn)證一個(gè)代理服務(wù)器 |
408 | Request Timeout | 請求時(shí)間超過了服務(wù)器所能等待的時(shí)間,連接被斷開 |
409 | Conflict | 請求有矛盾的地方 |
410 | Gone | 被請求的頁面不再可用 |
411 | Length Required | "Content-Length"沒有被定義,服務(wù)器拒絕接受請求 |
412 | Precondition Failed | 請求的前提條件被服務(wù)器評估為false |
413 | Request Entity Too Large | 因?yàn)檎埱蟮膶?shí)體太大,服務(wù)器拒絕接受請求 |
414 | Request-url Too Long | 服務(wù)器拒絕接受請求,因?yàn)閁RL太長。多出現(xiàn)在把"POST"請求轉(zhuǎn)換為"GET"請求時(shí)所附帶的大量查詢信息 |
415 | Unsupported Media Type | 服務(wù)器拒絕接受請求,因?yàn)槊襟w類型不被支持 |
417 | Expectation Failed | |
500 | Internal Server Error | 請求不完整,服務(wù)器遇見了出乎意料的狀況 |
501 | Not Implemented | 請求不完整,服務(wù)器不提供所需要的功能 |
502 | Bad Gateway | 請求不完整,服務(wù)器從上游服務(wù)器接受了一個(gè)無效的響應(yīng) |
503 | Service Unavailable | 請求不完整,服務(wù)器暫時(shí)重啟或關(guān)閉 |
504 | Gateway Timeout | 網(wǎng)關(guān)超時(shí) |
505 | HTTP Version Not Supported | 服務(wù)器不支持所指定的HTTP版本 |
設(shè)置HTTP狀態(tài)碼的方法
下表列出了HttpServletResponse 類中用來設(shè)置狀態(tài)碼的方法:
S.N. | 方法 & 描述 |
---|---|
1 | public void setStatus ( int statusCode ) |
2 | public void sendRedirect(String url) |
3 | public void sendError(int code, String message) |
HTTP狀態(tài)碼程序示例
接下來的例子將會(huì)發(fā)送407錯(cuò)誤碼給瀏覽器,然后瀏覽器將會(huì)告訴您"Need authentication!!!"。
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // 設(shè)置錯(cuò)誤代碼,并說明原因 response.sendError(407, "Need authentication!!!" ); %> </body> </html>
訪問以上JSP頁面,將會(huì)得到以下結(jié)果:

您也可以試試使用其他的狀態(tài)碼,看會(huì)不會(huì)得到什么意想不到結(jié)果。