html自定义错误页面,SpringBoot自定义错误页面

一、SpringBoot默认错误页面简介

用ControllerAdvice和ExceptionHandler来自定义全局异常处理,一般用来处理应用级别异常,有一些容器级别异常就处理不了,例如Filter中抛出异常。

当发生404,500等请求错误时,SpringBoot默认的是由BasicErrorController类来处理,

其中errorHtml方法返回默认错误的HTML页面,error方法返回错误信息是HTML还是Json,要根据请求头的Accept参数。

二、错误页面简单配置

在resources/static目录下创建error目录,一种添加4xx.html,5xx.html,一种是添加具体的状态码命名文件,例如404.html

也可以在classpath:/templates/目录下创建error目录,一种添加4xx.html,5xx.html,一种是添加具体的状态码命名文件,例如404.html

SpringBoot默认返回5条错误相关的信息,分别是timestamp,status,error,message,path,可以添加到动态页面自定义处理展示

优先级:动态错误页面 > 静态错误页面

优先级:具体响应码文件 > 5xx.html 4xx.html

三、错误页面复杂配置

1.自定义Error数据

@Component

public class MyErrorAttribute extends DefaultErrorAttributes {

@Override

public Map getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {

Map errorAttributes = super.getErrorAttributes(webRequest, options);

//放入自定义customMsg属性

errorAttributes.put("customMsg","自定义error属性");

//移除默认的error属性

errorAttributes.remove("error");

return errorAttributes;

}

}

当访问一个不存在的url,返回的json如下:

{

"timestamp": "2020-10-31T09:50:23.542+00:00",

"status": 404,

"message": "",

"path": "/error5",

"customMsg": "自定义error属性"

}

通过thymeleaf引擎,templates/error目录下配置404.html可以将这个值取出来

2.自定义Error视图

@Component

public class MyErrorViewResolver extends DefaultErrorViewResolver {

@Autowired

public MyErrorViewResolver(ApplicationContext applicationContext, ResourceProperties resourceProperties) {

super(applicationContext, resourceProperties);

}

@Override

public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map model) {

ModelAndView modelAndView = super.resolveErrorView(request, status, model);

//添加错误视图

modelAndView.setViewName("errorPage");

//model中添加数据

modelAndView.addObject("customMsg","出错了");

modelAndView.addAllObjects(model);

return modelAndView;

}

}

当访问一个不存在的url,返回的json如下:

{

"timestamp": "2020-10-31T09:55:58.004+00:00",

"status": 404,

"error": "Not Found",

"message": "",

"path": "/error5"

}

//没有自定义错误属性

通过thymeleaf引擎,在templates/errorPage.html中也可以将这个值取出来

3.完全自定义Error视图和Error数据

@Controller

public class MyErrorController extends BasicErrorController {

//由于BasicErrorController没有无参构造,用@Autowired传递参数,自动导入

//ErrorProperties在启动类中注入

@Autowired

public MyErrorController(ErrorAttributes errorAttributes, ErrorProperties errorProperties, List errorViewResolvers) {

super(errorAttributes, errorProperties, errorViewResolvers);

}

//重写errorHtml方法,自定义错误视图

@Override

public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {

ModelAndView modelAndView = super.errorHtml(request, response);

//添加错误视图

modelAndView.setViewName("errorPage");

//添加model属性

modelAndView.addObject("customMsg","出错了");

return modelAndView;

}

//重写error方法,返回自定义json

@Override

public ResponseEntity> error(HttpServletRequest request) {

ResponseEntity> responseEntity = super.error(request);

Map body = responseEntity.getBody();

//添加错误信息,json返回

body.put("hello", "world");

return responseEntity;

}

}

//在启动类中配置:

@Bean

public ErrorProperties errorProperties(){

return new ErrorProperties();

}

当访问一个不存在的url,返回的json如下:

{

"timestamp": "2020-10-31T10:01:36.088+00:00",

"status": 404,

"error": "Not Found",

"message": "",

"path": "/error5",

"hello": "world"

}

通过thymeleaf,在templates/errorPage.html中也可以将这个值取出来

自定义hello未加入model中,而是通过json返回,thymeleaf提取不出来

HTML错误页面:优化您的用户体验 当用户在浏览网站时,可能会遇到链接失效、服务器错误或其他问题,导致他们看到一个普通的、无法提供有用信息的错误页面。这样的页面给用户留下不好的印象,并可能使他们离开您的网站。为了提升用户体验,您可以自定义错误页面,向用户展示有用的信息并提供导航选项。:通过使用CSS,将错误页面的外观和感觉与您网站的整体风格保持一致。您可以修改标题的字体、大小和颜色,调整段落的间距和对齐方式,以及添加背景图像或品牌标识。通过以上的优化,您可以创建一个更具吸引力和用户友好的错误页面,提升用户体验并增加用户留存率。 阅读详情

相关推荐

IIS 服务器自定义错误页面 - Windows

然而,为了提供更好的用户体验和更详细的错误信息,您可以自定义 IIS 的错误显示页面。通过自定义 IIS 服务器的错误页面,您可以为访问者提供更好的用户体验和更详细的错误信息。本文提供了在 Windows 系统上实现自定义错误页面的步骤,并给出了相应的源代码示例。通过按照这些步骤进行配置,您可以轻松地为您的 Web 应用程序提供个性化的错误显示页面。尝试触发一个错误条件(例如,访问一个不存在的页面),并查看浏览器中显示的错误页面。在 IIS 管理器中,展开左侧的 “连接” 节点,并选择您要配置的网站。

FcUnity的博客 497

HTML 简约好看的错误页面合集

预览图;https://z3.ax1x.com/2021/06/01/2nlCFI.jpg

Spring Boot中静态HTML错误页面与HTTP状态码的映射

接下来,我们定义一个自定义异常,并将其与特定的HTTP状态码关联起来。通过注解,我们将异常与501状态码(表示请求未实现)联系起来。当方法被调用并抛出该异常时,Spring Boot会自动返回501状态码。

2501_90323865的博客 313

html 通用错误页面

因为业务业务需求,需要做一个错误的页面,避免出现错误信息或者相关业务信息泄露,所以在Nginx配置一个通用错误页面。 完成后页面访问路径: /error.html?status=500&uri=/user&time_local=2024年7月29日10:16:04&remote_addr=127.0.0.1&args=?test=1Nginx获取相关错误信息的方式: 以下是一些常用的 Nginx 变量及其用途,你可以在错误页面或日志中使用这些变量:完整代码:

酸菜丶小子 1445

SpringBoot自定义错误页

Spring Boot 中的错误默认是由= null)?}其中, errorHtml方法用来返回错误HTML页面, error用来返回错误JSON,具体返回的是HTML还是JSON,则要看请求头的Accept参数。返回JSON的逻辑很简单,不必过多介绍,返回HTML的逻辑稍微有些复杂,在 errorHtml方法中,通过调用resolveErrorView方法来获取一个错误视图的ModelAndView。

qq_25775675的博客 2418

thymeleaf 使用页面报错_SpringBoot 利用thymeleaf自定义错误页面

导入thymeleaforg.springframework.bootspring-boot-starter-thymeleaf自定义异常类建立监听异常类MyException.classpackage com.example.demo.domain;public class MyException extends RuntimeException {private int code;privat...

weixin_39566493的博客 439

Spring Boot 自定义错误(404.html)页面

Spring Boot 自定义错误(404.html)页面 使用SpringBoot的自动配置原理进行异常处理 SpringBoot自动配置了一个类ErrorMvcAutoConfiguration来处理处理异常,有兴趣的可以去看一下,然后在这个类中定义一个错误的BasicErrorController类,主要代码有如下: @Controller @RequestMapping({"${server.error.path:${error.path:/error}}"}) public class Basic

Voryla的博客 3万+

SpringBoot自定义错误页面 与 全局异常处理

Springboot中需要自定义错误页面: 一、使用Springboot默认的配置 1、在templates下穿件一个目录:error 2、在error目录下创建相应的对应的文件即可,如:400.html; 500.html 二、自定义错误页面配置; 首先,在我们的Spring Boot项目目录/src/main/resources/st...

GeeLoong`s Blog 289

SpringBoot--自定义错误页面、数据

简单配置 第一种情况:不使用模板 如果不需要向用户展示详细的错误信息,那么可以把错误信息定义成静态页面,直接在resources/static目录下创建error目录,然后在error目录中创建错误展示页面。 错误展示页面的规则有两种: 4xx.html、5xx.html 直接使用相应码命名文件,例如404.html、500.html 第二种情况:使用模板 如果要使用HTML模板,以Thyme...

吴声子夜歌的博客 853

java 500错误页面模板_SpringBoot自定义错误页面SpringBoot 404、500错误提示页面

SpringBoot自定义错误页面SpringBoot 404、500错误提示页面SpringBoot 4xx.html、5xx.html错误提示页面================================©Copyright蕃薯耀 2018年3月29日http://www.cnblogs.com/fanshuyao/附件&源码下载见:http://fanshuyao.itey...

weixin_33498283的博客 758

springboot自定义错误页面

springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return (container -> { ErrorP...

weixin_34380948的博客 90

spring boot 三种返回自定义错误页面的方式。

跟着bilibili 码匠视频 做小项目时,总结的三种错误请求返回自定义页面的方式 一、显示给定状态代码的自定义HTML错误页面 将文件添加到/ error文件夹。错误页面可以是静态HTML(即,添加到任何静态资源文件夹下),也可以使用模板构建。文件名应该是确切的状态代码或系列掩码。 例如,要将404或者5xx系列错误映射到静态HTML文件,您的文件夹结构将如下所示: src/ +- ...

B3325的博客 5495

SpringBoot异常处理-自定义错误页面

自定义错误页面 SpringBoot 默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制。 一旦程序中出现了异常SpringBoot 会像/error 的url 发送请求。在springBoot 中提供了一个 叫BasicExceptionController 来处理/error 请求,然后跳转到默认显示异常的页面来展示异常 信息。 如果我们需要将所有的异常同一跳...

Leon_Jinhai_Sun的博客 385

springboot -- 异常错误页面初了解

通常我们的运行项目时映射地址输错了或者数据问题等等就会出现这个错误页面。 而这个页面是springboot默认展示的页面。 我们也可以利用 模板引擎 制作一个属于自己的错误页面 在templates文件夹下创建error文件, 里面有404.html和4xx.html文件。 (为什么要创建在这? 因为mvc的自动配置错误页面默认路径就是error文件夹下的与以状态码名字相关的html文件, 如...

sky 185

SpringBoot自定义错误页面

使用Web应用时,在请求处理过程中发生错误是非常常见的情况.SpringBoot为我们提供一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面来展示异常内容.比如现在启动my-spring-boot项目,项目启动完成之后,在浏览器中随便输入一个访问地址,由于地址不存在,SpringBoot会跳转到错误页面,如图所示. 虽然Spring Boot为我们提供了默认的错误页面映射,但是在实际应用中,上图所示的错误页面对用户来说并不友好,我们需要自己来实现异常

白不懂黑的静的专栏 661

SpringBoot自定义错误页面SpringBoot 404、500错误提示页面

日 http://fanshuyao.iteye.com/   一、SpringBoot 404、500错误提示页面 1、在使用ThymeLeaf模板时,springBoot会自动到 src/main/resources/templates/error/ 文件夹下寻找404.htm、500.html的错误提示页面 错误提示页面的命名规则就是:错误码.html,如404是404.html,500是500.html     2、如果没有使用ThymeLeaf模板时,SpringBoot会到静

蕃薯耀的博客 3797

全局异常处理之自定义全局错误页面、404及500错误页面

跟杨春娟学SpringBoot笔记:全局异常处理之自定义全局错误页面、404及500错误页面 完成:第一遍 1.全局异常处理之自定义全局错误页面、404及500错误页面? 步骤一:在\src\main\resources\templates\error下创建全局错误页面 error_null.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>This i

ADbyCool的博客 790
上一篇: ipad如何阅读html文件格式,ipad HTML文件怎么打开
下一篇: html data i18n属性,前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”...
牡丹一抹红
博客等级 码龄8年 22粉丝 90原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值