如何更改 Apache Tomcat 默认错误页面值?
How to change Apache Tomcat default error page values?
我目前正在使用 Spring 引导应用程序 我正在修改错误页面和提供给它的消息。目前我可以更改 HTTP 状态编号和消息,但我不确定如何更改“未知原因”或描述而不将其更改为 418 以外的内容。是否也有自定义这些的方法,或者我坚持使用嵌入式代码提供?
当前代码修补
for(String serialNo : serialNoList) {
if(serialNo.length() < MIN_SERIALNO_SIZE ) {
response.sendError(401, "Serial Number Length Exceeded: " + serialNo);
}
if(serialNo.length() > MAX_SERIALNO_SIZE) {
response.sendError(403, "Serial Number Legth Too Short: " + serialNo);
}
}
首先,您需要禁用 whiteLabel 错误页面。
server.error.whitelabel.enabled=false
或
// adding this on your main class
@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
现在,创建一个html页面(error.html),把它放在resources/templates
目录下,它将被自动选择。
至 customize
,您可以针对每个错误实施不同的方法 ErrorController
。
@Controller
public class CustomErrorController implements ErrorController {
// override this error path to custom error path
@Override
public String getErrorPath() {
return "/custom-error";
}
@GetMapping("/custom-error")
public String customHandling(HttpServletRequest request){
// you can use request to get different error codes
// request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE)
// you can return different `view` based on error codes.
// return 'error-404' or 'error-500' based on errors
}
}
我目前正在使用 Spring 引导应用程序 我正在修改错误页面和提供给它的消息。目前我可以更改 HTTP 状态编号和消息,但我不确定如何更改“未知原因”或描述而不将其更改为 418 以外的内容。是否也有自定义这些的方法,或者我坚持使用嵌入式代码提供?
当前代码修补
for(String serialNo : serialNoList) {
if(serialNo.length() < MIN_SERIALNO_SIZE ) {
response.sendError(401, "Serial Number Length Exceeded: " + serialNo);
}
if(serialNo.length() > MAX_SERIALNO_SIZE) {
response.sendError(403, "Serial Number Legth Too Short: " + serialNo);
}
}
首先,您需要禁用 whiteLabel 错误页面。
server.error.whitelabel.enabled=false
或
// adding this on your main class
@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
现在,创建一个html页面(error.html),把它放在resources/templates
目录下,它将被自动选择。
至 customize
,您可以针对每个错误实施不同的方法 ErrorController
。
@Controller
public class CustomErrorController implements ErrorController {
// override this error path to custom error path
@Override
public String getErrorPath() {
return "/custom-error";
}
@GetMapping("/custom-error")
public String customHandling(HttpServletRequest request){
// you can use request to get different error codes
// request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE)
// you can return different `view` based on error codes.
// return 'error-404' or 'error-500' based on errors
}
}