错误页绝对是所有的 WEB 项目之中必须具有的一项信息显示处理,但是在传统的 WEB 项目开发过程之中,
错误页都是在 web.xml 文件之中进行配置的,不过遗憾的是 SpringBoot 之中并不存在有 web.xml 配置
文件这一项,那么如果要想进行错误页的处理,最好的做法是需要根据每一个错误代码创建一个属于自己的
错误显示页。
1、 所有的错误页都是普通的静态文件,那么建议在“src/main/static”目录下创建几个常见的错误页
(常见的错误的 HTTP 返回编码:404、500、400)
error_404.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>对不起,出现了404错误!</h1>
</body>
</html>
error_500.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>对不起,出现了500错误!</h1>
</body>
</html>
error_400.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>对不起,出现了400错误!</h1>
</body>
</html>
2、 添加一个错误页的配置类,在启动类中编写一个错误页的配置项;
package com.microboot.config;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
@Configuration
public class ErrorPageConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(
ConfigurableEmbeddedServletContainer container) {
ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST,
"/error_400.html");
ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND,
"/error_404.html");
ErrorPage errorPage500 = new ErrorPage(
HttpStatus.INTERNAL_SERVER_ERROR, "/error_500.html");
container.addErrorPages(errorPage400, errorPage404,
errorPage500);
}
};
}
}
那么此时只要出现了错误,就会找到相应的 http 状态码,而后跳转到指定的错误路径上进行显示。