W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當響應(yīng)的狀態(tài)碼被設(shè)置為錯誤狀態(tài)碼,并且響應(yīng)體中沒有內(nèi)容時,Servlet容器通常會渲染一個HTML錯誤頁。若需要定制容器默認提供的錯誤頁,你可以在web.xml
中定義一個錯誤頁面<error-page>
元素。在Servlet 3規(guī)范出來之前,該錯誤頁元素必須被顯式指定映射到一個具體的錯誤碼或一個異常類型。從Servlet 3開始,錯誤頁不再需要映射到其他信息了,這意味著,你指定的位置就是對Servlet容器默認錯誤頁的自定制了。
<error-page>
<location>/error</location>
</error-page>
這里錯誤頁的位置所在可以是一個JSP頁面,或者其他的一些URL,只要它指定容器里任意一個@Controller
控制器下的處理器方法:
寫回HttpServletResponse
的錯誤信息和錯誤狀態(tài)碼可以在控制器中通過請求屬性來獲?。?/p>
@Controller
public class ErrorController {
@RequestMapping(path = "/error", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public Map<String, Object> handle(HttpServletRequest request) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("status", request.getAttribute("javax.servlet.error.status_code"));
map.put("reason", request.getAttribute("javax.servlet.error.message"));
return map;
}
}
或者在JSP中這么使用:
<%@ page contentType="application/json" pageEncoding="UTF-8"%>
{
status:<%=request.getAttribute("javax.servlet.error.status_code") %>,
reason:<%=request.getAttribute("javax.servlet.error.message") %>
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: