SpringBoot 全局异常错误页面的示例分析
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章给大家介绍SpringBoot 全局异常错误页面的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SpringBoot 全局异常错误页面1. 创建项目,依赖Web
千家信息网最后更新 2025年02月04日SpringBoot 全局异常错误页面的示例分析
这篇文章给大家介绍SpringBoot 全局异常错误页面的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
SpringBoot 全局异常错误页面
1. 创建项目,依赖Web 和 thymeleaf
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf
2. 准备两个异常错误页面
在template中创建error文件夹,在error文件夹中创建4xx.html 和 5xx.html
3.准备自定义错误处理类
com.zhl.springbootexceptionjunit.controller.MyBasicErrorController
SpringBoot 出现异常时会查找 /error 视图, 如果没有则会根据错误码查找对应 error/400.html 之类的错误静态页面
此处重写ErrorController,实现/error 视图,根据错误类型,跳转至对应的视图,由于使用视图技术,需引用模板引擎(本例用thymeleaf)
package com.zhl.springbootexceptionjunit.controller;import org.springframework.boot.web.servlet.error.ErrorController;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.context.request.ServletWebRequest;import org.springframework.web.context.request.WebRequest;import javax.servlet.http.HttpServletRequest;import java.util.Date;import java.util.HashMap;import java.util.Map;/** * 定制ErrorController,目的是能使SpringBoot找到自己定制的错误页面 * 大部分的代码BasicController一致,关键点是修改错误页面的路径 */@Controller@RequestMapping(value = "/error")public class MyBasicErrorController implements ErrorController {@RequestMapping(produces = {"text/html"})//返回给浏览器 public String handlerError(HttpServletRequest request, Model model){ WebRequest webRequest = new ServletWebRequest(request);//对request进行包装,目的是能操作更多的方法 HttpStatus status = this.getStatus(request);//获取status String path = (String) webRequest.getAttribute("javax.servlet.error.request_uri", 0); String message = (String) webRequest.getAttribute("javax.servlet.error.message", 0);if(message.equals("")){ message = "No Available Message"; }//携带错误数据信息 model.addAttribute("timestamp", new Date()); model.addAttribute("statusCode", status.value()); model.addAttribute("error", status.getReasonPhrase()); model.addAttribute("message", message); model.addAttribute("path", path);int i = status.value() / 100;//判断是4xx还是5xx错误 if(i == 4){return "error/4xx";//使用自己定制的错误页面 }else if(i == 5){return "error/5xx";//使用自己定制的错误页面 }return null; }@RequestMapping//返回给客户端 public ResponseEntity
4.测试 代码
com.zhl.springbootexceptionjunit.controller.UsersController
@Controllerpublic class UsersController {@RequestMapping("showinfo")public String showinfo(){ String str=null; str.length();return "ok"; }}
测试1,运行时错误:
测试2:无资源的情况
关于SpringBoot 全局异常错误页面的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
错误
页面
更多
视图
全局
目的
测试
示例
分析
代码
内容
文件
文件夹
方法
中创
准备
包装
帮助
不错
一致
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
tno在数据库
网络安全保障是包括哪些
普洱思茅分局网络安全执法
半价服务器
电子网络安全200字
2013数据库 市场
pyqt5 小软件开发
嘉定区市场软件开发售后保障
育碧服务器的特点
公安机关互联网网络安全自查
河北项目软件开发哪家好
mysql数据库建议
由于上级网络安全要求
用计算机网络技术设计流程
夺旗战网络安全
易语言怎么创建数据库教程
麒麟系统服务器之间数据拷贝
网络技术高明漱粉
服务器读取不到硬盘linux
激光打标软件开发价格
小米手环服务器无法登录
东凤手机软件开发
网络安全保卫的任务
js跨域调用服务器数据
鸠鸠互联网新科技
境外服务器网信负责吗
淮安精诚软件开发公司
数据库全称英语
在线管理云服务器
软件开发企业适用的增值税税率