[英]How do I return a JSON response message and an HTTP error code from javax.servlet.filter doFilter method?
我已經為處理REST請求的應用程序創建了一個servlet過濾器。 我已經注釋了web.xml並創建了我的過濾器。 過濾器運行良好,但僅返回JSON文本消息。 我還需要返回405 HTTP狀態代碼。 當我執行測試並失敗時,我有一個簡單的PrintWriter可以打印錯誤消息:
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse apiResponse = (HttpServletResponse) response;
apiResponse.setContentType("application/json");
htmlOut = apiResponse.getWriter();
mainErrorObject = new JSONObject();
if(true){
htmlOut.println(mainErrorObject.toString());
}
htmlOut.close();
}
}
因此,就像我說的那樣,如何同時返回JSON文本消息和HTTP錯誤代碼?
ServletResponse
實現HttpServletResponse
,它具有setStatus
方法,該方法設置響應的狀態代碼。
setStatus
無效setStatus(int sc)
設置此響應的狀態碼。 此方法用於設置沒有錯誤的返回狀態代碼(例如,用於狀態代碼SC_OK或SC_MOVED_TEMPORARILY)。 如果存在錯誤,並且調用者希望調用Web應用程序中定義的錯誤頁面,則應改用sendError方法。 容器清除緩沖區並設置Location標頭,保留cookie和其他標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.