Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SpringBoot自定义错误页面

SpringBoot自定义错误页面

作者头像
似水的流年
发布于 2018-04-17 07:17:34
发布于 2018-04-17 07:17:34
1.5K00
代码可运行
举报
文章被收录于专栏:电光石火电光石火
运行总次数:0
代码可运行

Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它。它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去完成。对于我来说,自定义错误页面就是其中之一。比如404错误,如果不处理的话,会出现“This application has no explicit mapping for /error, so you are seeing this as a fallback.”的错误信息,如图所示:

Spring Boot默认使用嵌入式Tomcat,默认没有页面来处理404等常见错误。因此,为了给用户最佳的使用体验,404等常见错误需要我们自定义页面来处理。 我们需要用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer类来实现该功能,在Spring Boot的启动类(main方法所在类)当中,添加如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {

   return (container -> {
        ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
        ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
        ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");

        container.addErrorPages(error401Page, error404Page, error500Page);
   });
}

这是使用Java 8的lambda表达式来简化实现的方式,在代码中创建了三个ErrorPage实例来处理三个通用的HTTP错误状态码,并将他们添加到container当中。ErrorPage类是一个封装了错误信息的类,它可以在Jetty和Tomcat环境下使用。

这是使用Java 7内部类的一个等价实现方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {

    return new EmbeddedServletContainerCustomizer() {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {

            ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
            ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
            ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");

            container.addErrorPages(error401Page, error404Page, error500Page);
        }
    };
}

错误页面需要放在Spring Boot web应用的static内容目录下,它的默认位置是:src/main/resources/static,如下图所示:

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
我已经是Spring Framework框架的忠实粉丝。对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题。但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代。
九州暮云
2019/08/21
5K0
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
springboot 自定义错误页面
Spring Boot 默认使用嵌入式 Tomcat,默认没有页面来处理404等常见错误。因此,为了给用户最佳的使用体验,404等常见错误需要我们自定义页面来处理。
BUG弄潮儿
2022/02/10
8650
springboot 自定义错误页面
SpringBoot 配置404页面
特殊说明:以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心
2022/01/19
1.2K0
springboot自定义错误页面
springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return (container -> { ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html"); ErrorPage error404Pa
Dream城堡
2018/09/10
1K0
Spring Boot 个性化自己的错误页面ErrorPage
SpringBoot内置了一套错误页面:Default Whitelabel Error Page,很多时候我们通常要自己个性化错误页面,方法很简单,使用Java Config的方式,在@Configuration类中定义如下:
飞奔去旅行
2019/06/13
1.7K0
springboot整合springsecurity
小王不头秃
2024/06/19
1960
SpringBoot自定义错误页面
然后你只需要写个controller拦截不同请求然后跳到不同的自定义错误页面即可,如下所示:
一写代码就开心
2020/11/20
1.3K0
SpringBoot 2.0 配置错误页面 原
为什么80%的码农都做不了架构师?>>> springboot 2.0 配置错误页面 @Configuration public class ErrorPageConfig implements
北漂的我
2019/05/29
2.4K0
spring boot中自定义错误提示页面
当程序出错的时候,比如500错误,当用户输入的url错误时会找不到网页。 在这种情况下如果用默认的错误页面非常不友好。 一般我们都需要定制一些错误的页面。 在普通的web项目中很简单,直接配置web.xml就可以了。 <error-page> <error-code>404</error-code> <location>/WEB-INF/view/404.jsp</location> </error-page> <error-page> <error-code>400</error-
猿天地
2018/04/03
1.5K0
spring boot中自定义错误提示页面
Spring Boot搭建Web项目常用功能
     首先要弄清楚为什么要包装统一结构结果数据,这是因为当任意的ajax请求超时或者越权操作时,系统能返回统一的错误信息给到前端,前端通过封装统一的ajax请求统一处理这类错误信息(这样统一就避免每次都需要额外处理)。
hbbliyong
2018/07/24
1.1K0
Spring Boot集成Mybatis
Spring Boot集成Mybatis的配置方式有很多种,可以使用mybatis-spring-boot-starter、注解方式、传统集成方式等。本文采用的是传统方式,因为集成最为直接,而且事务配置也比较容易上手。
高广超
2018/12/12
5610
springboot定制404错误信息
序 本文简单介绍一下,在springboot中怎么个性化404错误信息。 返回json @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer(){ @Override public void customize(ConfigurableEmbeddedSer
code4it
2018/09/17
9650
【原创】008 | 搭上SpringBoot实战专车系列八:自定义错误页面
在上一篇SpringBoot集成数据持久化框架Mybatis最后提到一个问题,如何解决@Mapper注解这种开发负担。答案很简单,只需要告诉mabytis starter我们mapper接口的路径就可以了,这样就可以用更简便的方式达到同样的效果。实现代码如下:
java进阶架构师
2021/02/22
3970
【Spring Boot实战与进阶】全局异常处理@ExceptionHandler+@ControllerAdvice的使用
  需要注意的是,ExceptionHandler 的优先级比 ControllerAdvice 高,即优先让 ExceptionHandler 标注的方法处理。
程序员云帆哥
2022/05/12
4680
SpringBoot设置全局错误页面
SpringBoot内置了一套错误页面:Default Whitelabel Error Page,很多时候我们通常要自己个性化错误页面,方法很简单,使用Java Config的方式,在@Configurati on类中定义如下:
王念博客
2019/07/25
1.4K0
使用 Nginx 容器为 Traefik 配置高性能通用错误页面
使用 Traefik 比较久的读者应该会发现,在服务重启的时候,原来的网站会展示 404 not found 的空白页面,虽然多数情况下服务恢复很快,但是这个恢复时间取决于部署启动的应用和监控检查配置策略,如果没有配置流量切换规则,那么有的时候,会看到很久的空白页面,这样的体验显然不好。
soulteary
2020/12/06
1.1K0
使用 Nginx 容器为 Traefik 配置高性能通用错误页面
SpringBoot图文教程15—项目异常怎么办?「跳转404错误页面」「全局异常捕获」
异常处理在Java中是一种很常规的操作,在代码中我们常用的方法是try catch或者上抛异常。
鹿老师的Java笔记
2020/03/30
1.5K0
Springboot异常处理只会@ControllerAdvice+@ExceptionHandler?还远远不够!
当系统出现异常时候,或404,或500,默认返回的错误页面通常非常简陋,用户也看不懂,这时候我们想通过一些手段,提示用户访问的资源不存在,或者请稍后再试。
java思维导图
2019/09/19
2.4K0
Springboot异常处理只会@ControllerAdvice+@ExceptionHandler?还远远不够!
SpringBoot错误页配置及项目全局错误处理
1> 用户体验:当我们请求路径写错时,浏览器显示一个"Whitelabel Error Page",对用户来说体验不友好。
Java编程指南
2019/08/02
1.7K0
SpringBoot错误页配置及项目全局错误处理
.net自定义错误页面实现
  在实际的web开发中,经常会遇到以下情况,导致给用不好的体验:     a、程序未处理的异常,直接输出显示到用户页面     b、用户访问的资源不存在,直接显示系统默认的404页面     c、其它以下请求错误状态的系统默认页面(403等)   为了给用户友好的体验,在实际项目开发中, 需要对系统会不同的异常定制相应的友好提示页面
小小许
2018/09/20
1.3K0
推荐阅读
相关推荐
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验