目录
`SpringBoot` 自定义 `404、500` 错误页面`SpringBoot` 默认的异常处理机制使用模板引擎使用示例创建 `SpringBoot` 项目如下`application.properties` 项目配置文件`404` 页面内容如下`500` 页面内容如下`Controller` 如下`404.html` 页面测试`500.html` 页面测试没有使用模板引擎SpringBoot
自定义404、500
错误页面
SpringBoot
默认的异常处理机制
SpringBoot
默认已经提供了一套处理异常的机制。一旦程序中出现了异常SpringBoot
会向/error
的url
发送请求。在SpringBoot
中提供了一个名为BasicErrorController
的类来处理/error
请求,然后跳转到默认显示异常的页面来展示异常信息
使用模板引擎
在使用thymeleaf
等模板引擎时,SpringBoot
会自动到src/main/resources/templates/error/
,文件夹下寻找404.html、500.html
的错误提示页面
错误提示页面的命名规则就是:错误码.html
,如404
是404.html
,500
是500.html
使用示例
创建SpringBoot
项目如下
404、500
错误提示页面结构如下
application.properties
项目配置文件
server.port=8080#它的默认值就是classpath:/templates/,源码在ThymeleafProperties类中spring.mvc.view.prefix=classpath:/templates/#它的默认值就是.html,源码在ThymeleafProperties类中spring.mvc.view.suffix=.htmlspring.thymeleaf.cache=false
404
页面内容如下
<!DOCTYPE html><html lang="en" xmlns:th=""><head><meta charset="UTF-8"><title>404</title><link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}"/><link rel="stylesheet" type="text/css" th:href="@{/css/404.css}"/></head><body><div id="banner" style="height: 600px;width: 600px;margin-left: 370px"></div></body></html>
500
页面内容如下
<!DOCTYPE html><html lang="en" xmlns:th=""><head><meta charset="UTF-8"><title>500</title><link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}"/><link rel="stylesheet" type="text/css" th:href="@{/css/500.css}"/></head><body><div id="banner" style="height: 600px;width: 600px;margin-left: 370px"></div></body></html>
Controller
如下
@Controllerpublic class PageController {// 跳转到登录页@GetMapping(path = "/toLogin")public String toLogin() {int code = 1/0;return "login";}}
404.html
页面测试
访问不存在的接口:http://localhost:8080/aaaa
,结果如下
500.html
页面测试
访问已存在的接口:http://localhost:8080/toLogin
,结果如下
没有使用模板引擎
如果没有使用thymeleaf
等模板引擎时,SpringBoot
会到静态资源文件夹寻找404.htm、500.html
的错误提示页面,命名同上。SpringBoot
中默认的静态资源路径有4
个,分别是
classpath:/METAINF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
优先级顺序为:META-INF/resources > resources > static > public
,以上4
种路径创建error
文件夹,再创建404、500
错误提示页面如下
不用写额外的映射器,就能直接请求到