spring boot 下 500 404 403錯誤頁面處理
阿新 • • 發佈:2019-01-23
1.場景說明
Spring Boot 下http 500 404 403錯誤頁面處理。同時文章是在《SpringBoot介面服務處理Whitelabel Error Page》基礎上新增內容,更加詳細的說明請參考這篇文章。本文直說明差異部分。
2.程式碼修改
/**
* Supports the HTML Error View
* @param request
* @return
*/
@RequestMapping(value = ERROR_PATH, produces = "text/html")
public ModelAndView errorHtml (HttpServletRequest request) {
Map<String, Object> map = getAttributes(request, false);
ModelAndView mav = null;
Integer status = (Integer) map.get("status");
if (status == 404){
mav = new ModelAndView("pages/404", map);
} else if (status == 403 ){
mav = new ModelAndView("pages/403", map);
} else if (status == 500){
mav = new ModelAndView("pages/500", map);
} else {
mav = new ModelAndView("greeting", map);
}
return mav;
}
private Map<String, Object> getAttributes(HttpServletRequest request,
boolean includeStackTrace) {
RequestAttributes requestAttributes = new ServletRequestAttributes(request);
Map<String, Object> map = this.errorAttributes.getErrorAttributes(requestAttributes,includeStackTrace);
String URL = request.getRequestURL().toString();
map.put("URL", URL);
logger.debug("AppErrorController.method [error info]: status-" + map.get("status") +", request url-" + URL);
return map;
}
在templates中新增pages資料夾,建立403、404、500頁面。
因為如果不處理,會提示異常資訊:
3.修改效果
404錯誤跳轉至pages/404頁面。
由於掌握有限,針對文中未盡事宜,麻煩各位幫忙指出,謝謝。
4.Http狀態碼