設置 HTTP 狀態代碼的方法
下面的方法可用於在 Servlet 程序中設置 HTTP 狀態碼。這些方法通過 HttpServletResponse 對象可用。
序號 | 方法 & 描述 |
---|---|
1 | public void setStatus ( int statusCode ) 該方法設置一個任意的狀態碼。setStatus 方法接受一個 int(狀態碼)作為參數。如果您的反應包含了一個特殊的狀態碼和文檔,請確保在使用 PrintWriter 實際返回任何內容之前調用 setStatus。 |
2 | public void sendRedirect(String url) 該方法生成一個 302 響應,連同一個帶有新文檔 URL 的 Location 頭。 |
3 | public void sendError(int code, String message) 該方法發送一個狀態碼(通常為 404),連同一個在 HTML 文檔內部自動格式化並發送到客戶端的短消息。 |
HTTP 狀態碼實例
下面的例子把 407 錯誤代碼發送到客戶端瀏覽器,瀏覽器會顯示 "Need authentication!!!" 消息。
// 導入必需的 java 庫 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; @WebServlet("/showError") // 擴展 HttpServlet 類 public class showError extends HttpServlet { // 處理 GET 方法請求的方法 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 設置錯誤代碼和原因 response.sendError(407, "Need authentication!!!" ); } // 處理 POST 方法請求的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
現在,調用上面的 Servlet 將顯示以下結果:
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 |