前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springboot配置异常错误页

Springboot配置异常错误页

作者头像
别先生
发布2020-11-24 14:47:04
1K0
发布2020-11-24 14:47:04
举报
文章被收录于专栏:别先生

1、在Web项目开发过程中,错误信息提示页是一个重要的组成部分。为了不让用户直接看见异常信息的页面,此时,就需要有一个错误信息提示页。错误页面一般都属于静态页面,这里在src/main/resources/static目录下创建error-404.html。

首先,在pom.xml里面新增几个配置,在src/main/resources目录下面要加下,不然无法进行加载,修改完毕之后,maven -> Update Project一下。

代码语言:javascript
复制
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 5     https://maven.apache.org/xsd/maven-4.0.0.xsd">
 6     <modelVersion>4.0.0</modelVersion>
 7     <parent>
 8         <groupId>org.springframework.boot</groupId>
 9         <artifactId>spring-boot-starter-parent</artifactId>
10         <version>2.3.5.RELEASE</version>
11         <relativePath /> <!-- lookup parent from repository -->
12     </parent>
13     <groupId>com.example</groupId>
14     <artifactId>demo</artifactId>
15     <version>0.0.1-SNAPSHOT</version>
16     <name>demo</name>
17     <description>Demo project for Spring Boot</description>
18 
19     <properties>
20         <java.version>1.8</java.version>
21         <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
22     </properties>
23 
24     <dependencies>
25         <dependency>
26             <groupId>org.springframework.boot</groupId>
27             <artifactId>spring-boot-starter-web</artifactId>
28         </dependency>
29 
30         <dependency>
31             <groupId>org.springframework.boot</groupId>
32             <artifactId>spring-boot-starter-test</artifactId>
33             <scope>test</scope>
34             <exclusions>
35                 <exclusion>
36                     <groupId>org.junit.vintage</groupId>
37                     <artifactId>junit-vintage-engine</artifactId>
38                 </exclusion>
39             </exclusions>
40         </dependency>
41         <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
42         <dependency>
43             <groupId>org.hibernate</groupId>
44             <artifactId>hibernate-validator</artifactId>
45             <version>6.1.0.Final</version>
46         </dependency>
47     </dependencies>
48 
49     <build>
50         <plugins>
51             <plugin>
52                 <groupId>org.springframework.boot</groupId>
53                 <artifactId>spring-boot-maven-plugin</artifactId>
54             </plugin>
55         </plugins>
56         <resources>
57             <resource>
58                 <directory>src/main/resources</directory>
59                 <includes>
60                     <include>**/*.properties</include>
61                     <include>**/*.yml</include>
62                     <include>**/*.xml</include>
63                     <include>**/*.p12</include>
64                     <include>**/*.html</include>
65                     <include>**/*.jpg</include>
66                     <include>**/*.png</include>
67                 </includes>
68             </resource>
69         </resources>
70     </build>
71 
72 </project>

搞一个html静态界面放到src/main/resources/static下面,如下所示:

代码语言:javascript
复制
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8 
 9     <img alt="错误页面" src="images/error.jpg">
10 
11 </body>
12 </html>

建立错误页配置,springboot2.x此类EmbeddedServletContainerCustomizer已经被替换为WebServerFactoryCustomizer,如下所示:

代码语言:javascript
复制
 1 package com.demo.config;
 2 
 3 import org.springframework.boot.web.server.ConfigurableWebServerFactory;
 4 import org.springframework.boot.web.server.ErrorPage;
 5 import org.springframework.boot.web.server.WebServerFactoryCustomizer;
 6 import org.springframework.context.annotation.Bean;
 7 import org.springframework.context.annotation.Configuration;
 8 import org.springframework.http.HttpStatus;
 9 
10 /**
11  * 
12  * @author
13  * 
14  *         springboot2.x此类EmbeddedServletContainerCustomizer已经被替换为WebServerFactoryCustomizer
15  * 
16  */
17 @Configuration
18 public class ErrorPageConfig {
19 
20     @Bean
21     public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
22         WebServerFactoryCustomizer<ConfigurableWebServerFactory> customizer = new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
23 
24             @Override
25             public void customize(ConfigurableWebServerFactory factory) {
26                 // 定义404错误页
27                 HttpStatus notFound = HttpStatus.NOT_FOUND;
28                 System.out.println(notFound);
29                 // 定义404错误页
30                 ErrorPage errorPage404 = new ErrorPage(notFound, "/error-404.html");
31                 // 追加错误页,替换springboot默认的错误页
32                 factory.addErrorPages(errorPage404);
33                 // 设置tomcat服务器的端口号
34                 factory.setPort(8081);
35             }
36 
37         };
38         return customizer;
39     }
40 
41 }

配置完错误页之后,会根据用户请求时的http状态码跳转到不同的页面进行显示。

运行效果,如下所示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档