SpringBoot异常处理之异常显示的页面问题

目录
  • 导言
  • 实现步骤
    • 加入thymeleaf依赖
    • 然后创建controller
    • 使用X进行模糊匹配
    • 统一错误页面显示

导言

默认情况下,SpringBoot 项目错误页面如下:

直接这样太丑了,我们实际上线项目时,如果给用户显示这个页面就不是很友好,用户直接不用了。

所以当系统出现异常时应该给用户更加友好的错误页面,下面我们来看具体是如何实现的。

实现步骤

加入thymeleaf依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

在templates/下新建error文件夹

在error中新建:状态.html的页面。例如当出现500时显示的页面为500.html,当出现404时显示的页面为404.html,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>404</title>
</head>
<body>
    <h1>
        404!没有这个请求,请检查!
    </h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>500</title>
</head>
<body>
    <h1>
        500!您的代码出现了内部错误,请检查!
    </h1>
</body>
</html>

然后创建controller

@Controller
public class ErrorController {

    @RequestMapping("/test")
    public String testError(){
        System.out.println(5/0);
        // return "500";
        return "500.html";
    }
}

我们知道,在运行上面代码的时候发生算术异常。错误码为500。

测试如下:

使用X进行模糊匹配

  • 当出现5开头状态码的错误时,显示页面可以命名为5xx.html
  • 如果500.html和5xx.html同时存在,则会精确匹配相应页面。

我们把刚才的500.html改为5xx.html,也是可以的

因为发生了5开头的异常,会走5xx.html,测试如下:

统一错误页面显示

在templates下新建error.html。如果项目中不存在具体状态码的页面或没有使用x成功匹配的页面时,显示error.html作为错误显示页面。

比如我们在error下没有设置4xx相关的错误页面,当发生状态码为4xx的错误时,找不到相关的错误处理页面,这时会走一个统一的错误处理页面。一般会在templates下创建error.html,作为统一的错误处理页面。

在templates下创建error.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>error</title>
</head>
<body>
    <h1>
        error!!!
    </h1>
</body>
</html>

当发生404错误时,会自动走error.html

到此这篇关于SpringBoot异常处理之异常显示的页面问题的文章就介绍到这了,更多相关SpringBoot异常处理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot接口如何统一异常处理

    目录 为什么要优雅的处理异常 实现案例 @ControllerAdvice异常统一处理 Controller接口 运行测试 进一步理解 @ControllerAdvice还可以怎么用? @ControllerAdvice是如何起作用的(原理)? 为什么要优雅的处理异常 如果我们不统一的处理异常,经常会在controller层有大量的异常处理的代码, 比如: @Slf4j @Api(value = "User Interfaces", tags = "User Interfac

  • SpringBoot详解实现自定义异常处理页面方法

    目录 1.相关介绍 2.代码实现 3.运行测试 1.相关介绍 当发生异常时, 跳转到我们自定义的异常处理页面. SpringBoot中只需在静态资源目录下创建一个error文件夹, 并把异常处理页面放入其中, 页面的命名与异常错误代码对应, 如404.html, 500.html. 5xx.html可以对应所有错误代码为5开头的错误 默认静态资源目录为类路径(resources)下的: /static /public /resources /META-INF/resources 2.代码实现 H

  • SpringBoot优雅地实现全局异常处理的方法详解

    目录 前言 异常工具 异常处理 异常捕捉 前言 在前一节的学习中,慕歌带大家使用了全局结果集返回,通过使用全局结果集配置,优雅的返回后端数据,为前端的数据拿取提供了非常好的参考.同时通过不同的状态码返回,我们能够清晰的了解报错的位置,排除错误.如果大家有需要,可以使用我提供的的同一结果集以及状态码,并且可以使用全局异常拦截,实现异常的标准返回.接下来,我们一起来了解如何使用全局异常处理吧! 异常工具 先定义一个合适 的异常处理类,在之后的异常都会以这种格式返回前端,前端根据我们的异常进行自己的返

  • springboot 全局异常处理和统一响应对象的处理方式

    目录 springboot异常处理 SpringBoot 默认的异常处理机制 SpringBoot 全局异常处理 1. 局部异常处理 2. 全局异常处理 自定义异常 统一响应对象 定义统一的响应对象 枚举信息 响应对象 springboot异常处理 SpringBoot 默认的异常处理机制 默认情况,SpringBoot 提供两种不同响应方式 一种是浏览器客户端请求一个不存在的页面或服务端异常时,SpringBoot默认会响应一个html 另一种是使用postman等调试工具请求不存在的url或

  • Springboot项目异常处理及返回结果统一

    目录 背景 返回结果定义 异常的定义 异常的处理 返回结果的处理 完整代码 使用示例 背景 在创建项目的初期,我们需要规范后端返回的数据结构,以便更好地与前端开发人员合作. 比如后端返回的数据为: {  "msg": "请跳转登陆页面", } 此时前端无法确定后端服务的处理结果是成功的还是失败的.在前端展示页面,成功与失败的展示是要作区分的,甚至不同的成功或失败结果要做出不同的展现效果,这也就是我们为什么要对返回结果做出统一规范的原因. 返回结果定义 public

  • SpringBoot错误处理流程深入详解

    目录 一.错误处理 二.底层相关组件 三.异常处理流程 四.定制错误处理逻辑 1.自定义错误页面 2.使用注解或者默认的异常处理 3.自定义异常处理解析器 一.错误处理 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端(例如PostMan),它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息(如果设置了拦截器,需要在请求头中塞入Cookie相关参数) 对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据

  • springboot处理异常的5种方式

    目录 1.自定义错误页面 2.@ExceptionHandle 注解处理异常 3.@ControllerAdvice+@ExceptionHandler 注解处理异常 4.配置 SimpleMappingExceptionResolver 处理异常 5.自定义 HandlerExceptionResolver 类处理异常 通用异常处理: 1.自定义异常枚举类 2.自定义异常类 3.自定义异常结果处理类 4.全局异常处理 程序的异常:Throwable 严重错误问题:Error     我们不处理

  • SpringBoot中异常处理实战记录

    目录 一.背景 二.需求 三.编写一些异常基础代码 四.注意事项 五.总结 六.代码实现 七.参考文档 一.背景 在我们编写程序的过程中,程序中可能随时发生各种异常,那么我们如何优雅的处理各种异常呢? 二.需求 1.拦截系统中部分异常,返回自定义的响应. 比如: 系统发生HttpRequestMethodNotSupportedException异常,我们需要返回如下信息. http的状态码:返回 405 { code: 自定义异常码, message: 错误消息 } 2.实现自定义异常的拦截

  • 如何在SpringBoot项目里进行统一异常处理

    目录 1.处理前 2.进行系统异常全局处理 3.进行自定义异常处理 效果 前言: 需要了解的知识: @ControllerAdvice的作用 1.处理前 异常代码: /** * 根据id获取医院设置 * * @param id 查看的id编号 * @return */ @ApiOperation(value = "根据id获取医院设置") @GetMapping("/findHospById/{id}") public Result findHospById(@Pa

  • SpringBoot异常处理之异常显示的页面问题

    目录 导言 实现步骤 加入thymeleaf依赖 然后创建controller 使用X进行模糊匹配 统一错误页面显示 导言 默认情况下,SpringBoot 项目错误页面如下: 直接这样太丑了,我们实际上线项目时,如果给用户显示这个页面就不是很友好,用户直接不用了. 所以当系统出现异常时应该给用户更加友好的错误页面,下面我们来看具体是如何实现的. 实现步骤 加入thymeleaf依赖 <dependency> <groupId>org.springframework.boot<

  • SpringBoot集成Beetl后统一处理页面异常的方法

    背景 SpringBoot集成Beetl后如果页面出现异常会将出现异常之前的页面输出到客户端,但是由于页面不完整会导致用户看到的页面错乱或者空白,如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 在控制台可以看到 >

  • SpringBoot中定制异常页面的实现方法

    定制异常页面,可以避免用户产生恐慌心理,使得产品有更好的用户体验.今天来学习在 SpringBoot 中如何定制开发异常页面 一.历史回顾 在 SpringMVC 年代,我们的异常页面一般配置在 web.xml 文件中,如下: <!-- 配置404页面 --> <error-page> <error-code>404</error-code> <location>/error/404.html</location> </erro

  • SpringBoot @ControllerAdvice 拦截异常并统一处理

    在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@RequestMapping中.参考:@ControllerAdvice 文档 一.介绍 创建 MyControllerAdvice,并添加 @ControllerAdvice注解. package com.sam.demo.controller; import org.springframework.ui

  • 详解SpringBoot异常处理流程及原理

    异常处理流程 执行目标方法,目标方法运行期间有任何异常都会被catch捕获,并标志当前请求结束,dispatchException抛出异常 进入视图解析流程,并渲染页面,发生异常时,参数mv为空,传入捕获的异常dispatchException 处理handler发生的异常,处理完成返回ModelAndView (1)遍历所有的HandlerExceptionResolvers,找到可以处理当前异常的解析器来解析异常 (2)调用resolveException解析异常,传入request和res

  • Ajax获取数据然后显示在页面的实现方法

    主要功能流程介绍 循环获取列表数据 点击列表数据进入详情页 点击报名参加弹出报名成功提示框 点击提示框中的确定按钮,跳回列表页 代码实现流程和解说 一.列表页 1.访问链接list.php时判断是pc端还是客户端 $user_agent_arr = mall_get_user_agent_arr(); if(MALL_UA_IS_PC == 1) { //****************** pc版 ****************** include_once './list-pc.php';

  • SpringBoot异步方法捕捉异常详解

    本文实例为大家分享了SpringBoot异步方法捕捉异常的具体代码,供大家参考,具体内容如下 由于项目中定时器都采用异步执行方式 需要定时监控异步方法执行进度,异常情况 1 执行进度 可以设置是否在执行,内存中添加执行标识即可. 防止多次执行可以通过拦截器对此,标识来判断,防止多次执行定时器 2 异常捕捉 监控异步方法执行是否异常. 1 无返回值 配置AsyncExceptionConfig类,统一处理. 定义异常捕获配置类AsyncExceptionConfig,配置类里面定义SpringAs

  • springboot异常处理的基本规范

    背景分析 在项目的开发中,不管是对底层的数据逻辑操作过程,还是业务逻辑的处理过程,还是控制逻辑的处理过程,都不可避免会遇到各种可预知的.不可预知的异常.处理好异常对系统有很好的保护作用,同时会大大提高用户的体验. 异常处理分析 概述 Java项目中处理异常方式无非两种,要么执行trycatch操作,要么执行throw操作(抛给其它对象处理),无论采用哪种方式,其目的是让我们的系统对异常要有反馈.但现在的问题是我们如何让这种反馈代码的编写即简单又直观.友好. 处理规范 我们在处理异常的过程中通常要

  • 浅谈什么是SpringBoot异常处理自动配置的原理

    异常处理自动配置 ErrorMvcAutoConfiguration自动配置类自动配置了处理规则,给容器中注册了多种组件 errorAttributes组件,类型为DefaultErrorAttributes.这个组件定义错误页面中可以包含哪些数据 basicErrorController组件,类型为BasicErrorController.处理默认/error路径的请求,new一个id为error的ModelAndView对象来响应页面 error组件,类型为View.响应的是默认错误页面 b

  • js获取当前时间显示在页面上并每秒刷新

    方法很简单,代码也很简洁,直接奉上代码吧 复制代码 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js获取当前时间显示在页面上</title> <script> window.onload=function(){ //定时器每秒调用一次fnDate() setInterval(f

随机推荐