2011-08-08 66 views
0

我有一個使用XML進行數據交換的Java Web應用程序。我寫了一個servlet,它使用HTTP Post從特定的客戶端上載XML文件。 Post方法成功完成後,它會向客戶端發送200 OK消息(使用默認Web服務器HTTP狀態)。現在,我需要在應用程序中包含一些HTTP狀態代碼,以便當上傳出現問題時,客戶端將獲得一些HTTP狀態消息(例如,400錯誤請求,502錯誤網關)。我應該如何在我的web應用程序中添加HTTP狀態碼?請幫我建議。謝謝基於Java服務器的Web應用程序中的HTTP狀態代碼

回答

2

您可以使用HttpServletResponse#setStatus()HttpServletResponse#sendError()

@Override 
public void doPost(HttpServletRequest request, HttpServletResponse response) { 

    // handle upload 

    // if error 
    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); 

    // or 
    response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 
         "An unknown error occurred"); 
} 

的方法在它們所造成的servlet容器做什麼不同,所以選擇一個最適合您的情況。

  • setStatus()

    如果使用這種方法來設置一個錯誤代碼,然後將容器的 錯誤頁面機制不會被觸發。

  • sendError()

    使用指定狀態時發送錯誤響應到客戶機和 清除緩衝區。服務器默認爲創建到 響應看起來像一個包含指定 消息

狀態碼常量的列表中的HTML格式的服務器錯誤頁面是在Field Summary of the javadoc可用。對於你的問題的代碼( 「important_parameter需要」 res.SC_BAD_REQUEST)

相關問題