SpringBoot 全局异常错误页面的示例分析
发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,这篇文章给大家介绍SpringBoot 全局异常错误页面的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SpringBoot 全局异常错误页面1. 创建项目,依赖Web
千家信息网最后更新 2024年11月13日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安全错误
数据库的锁怎样保障安全
浙江综合软件开发市场报价
数据库测试方法
科技推动互联网金融
管理您的服务器怎么设置白名单
珠海考试软件开发设计
昆冶金计算机网络技术在哪个区
深圳软件开发定制公司哪个好
orical数据库许可
网络安全法治化治理的必要性
多举措增强网络安全防范意识
查看服务器有多少个进程
服务器怎么提高工作效率
300英雄显示连接服务器失败
上海媒体软件开发服务介绍
网络技术的定义方法
峡江软件开发
数据库系统概论odbc
完美国际单机版怎么新建数据库
cad软件开发转行
电子书计算机网络技术
高原战士网络安全
昆冶金计算机网络技术在哪个区
交换机到服务器怎么连接
泽农网络技术工作室
程序设计软件开发所用语言
unity使用数据库框架
计算机网络安全原理及防护
海南手机软件开发服务商
蓝鸟计划软件开发
银行如何计算机网络安全