HTTP 請求和 HTTP 響應(yīng)消息的格式是類似的,結(jié)構(gòu)如下:
?
- 初始狀態(tài)行 + 回車換行符(回車+換行)
- 零個或多個標題行+回車換行符
- 一個空白行,即回車換行符
- 一個可選的消息主體,比如文件、查詢數(shù)據(jù)或查詢輸出
?
?
?
?
?
?
狀態(tài)行包括 HTTP 版本(在本例中為 HTTP/1.1)、一個狀態(tài)碼(在本例中為 200)、一個對應(yīng)于狀態(tài)碼的短消息(在本例中為 OK)。
?
以下是可能從 Web 服務(wù)器返回的 HTTP 狀態(tài)碼和相關(guān)的信息列表:
?
?
?
?
?
?
?
?
?
設(shè)置 HTTP 狀態(tài)代碼的方法
下面的方法可用于在 Servlet 程序中設(shè)置 HTTP 狀態(tài)碼。這些方法通過?HttpServletResponse?對象可用。
?
序號 | 方法 & 描述 |
---|---|
1 |
public void setStatus ( int statusCode ) ? ? 該方法設(shè)置一個任意的狀態(tài)碼。setStatus 方法接受一個 int(狀態(tài)碼)作為參數(shù)。 ? 如果您的響應(yīng)包含了一個特殊的狀態(tài)碼和文檔,請確保在使用?PrintWriter?實際返回任何內(nèi)容之前調(diào)用 setStatus。 |
2 |
public void sendRedirect(String url) ? 該方法生成一個 302 響應(yīng),連同一個帶有新文檔 URL 的?Location?頭。 |
3 |
public void sendError(int code, String message) ? 該方法發(fā)送一個狀態(tài)碼(通常為 404),連同一個在 HTML 文檔內(nèi)部自動格式化并發(fā)送到客戶端的短消息。 |
?
?
?
?
HTTP 狀態(tài)碼實例
?
下面的例子把 407 錯誤代碼發(fā)送到客戶端瀏覽器,瀏覽器會顯示 "Need authentication!!!" 消息。
?
?
// 導(dǎo)入必需的 java 庫 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import javax.servlet.annotation.WebServlet; @WebServlet("/showError") // 擴展 HttpServlet 類 public class showError extends HttpServlet
{ // 處理 GET 方法請求的方法 public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
// 設(shè)置錯誤代碼和原因 response.sendError(407, "Need authentication!!!" );
}
// 處理 POST 方法請求的方法 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{ doGet(request, response); } }
?
?
?
?
現(xiàn)在,調(diào)用上面的 Servlet 將顯示以下結(jié)果:
?
?
?
本文摘自 :https://www.cnblogs.com/