自动匹配错误html head title,SpringBoot - 自定义错误页1(基础:配置404等错误的静态页面、动态模版页面)...

SpringBoot - 自定义错误页1(基础:配置404等错误的静态页面、动态模版页面)

在之前的文章中我介绍了如何使用@ControllerAdvice来进行全局异常处理(点击查看),但是这种异常处理方式一般用来处理应用级别的异常,一些容器级别的错误就处理不了,比如 Filter中抛出的异常。因此,Spring Boot 中对于异常的处理还有另外的方式。

比如默认情况下,当我们通过 Postman等工具来请求一个不存在的接口,则会返回如下 json格式的错误数据:

2fd53f5a174525fcd2b3f8353356139a.png

而如果是通过浏览器访问的话,Spring Boot 则会有一个默认的错误页面展示给用户。

096ee0578d6ca173c0cd056981a33ce7.png

无论是错误页面还是里面的显示内容都是可以自定义的,下面分别进行介绍。

一、基本配置

1,使用静态页面(1)如果不需要向用户展示详细的错误信息,可以把错误信息定义成静态页面。即在resource/static 目录下创建 error目录,然后在 error目录中创建错误展示页面。错误展示页面命名规则有如下两种:

一种是直接使用具体的响应码命名文件,比如:404.html、405.html、500.html

另一种可以使用4xx.html、5xx.html这样的命名

如果用户定义了多个错误页面,它们优先级如下:响应码.html 的优先级高于 4xx.html、5xx.html页面的优先级。比如:发生一个 404 错误,则优先展示 404.html 而不是 4xx.html

动态页面的优先级高于静态页面。比如:resource/templates 和resocurce/static 下同时定义了4xx.html,则优先展示resources/templates/4xx.html

cdbf490a2635bcaa1c596c1f4e4964bd.png

(2)比如404.html里面的内容如下:

Title

发生了404错误。

(3)如果使用浏览器访问一个不存在的接口,显示的结果如下:

bd81e60993a98b81286197e7a0b1334e.png

2,使用动态模版

(1)如果需要向用户展示完整的错误信息,就需要采用视图模版技术。这里以 Thymeleaf为例,首先引入模版相关的依赖。

org.springframework.boot

spring-boot-starter-thymeleaf

2)Thymeleaf页面模版默认处于resource/templates 目录下,因此在该目录下创建 error目录,在创建错误展示页。

577ed4ef16f8e8d6811c8e118e53dbff.png

(3)4xx.html 里的内容如下,展示出Spring Boot 返回的5条错误相关信息,分别是:timestamp、status、error、message、path

Title
timestamp
status
error
message
path

(4)当请求一个不存在的接口时,页面显示的结果如下:

c2e472cc60646636a6c9bb5b9e1abe16.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当Django发生404或500错误时,它会自动查找并使用默认的错误页面来响应请求。如果您想自定义这些错误页面,您可以使用以下方法: 1. 在您的templates目录下创建一个名为404.html或500.html的模板文件。例如,要创建自定义404页面,请按照以下步骤操作: - 在您的templates目录下创建一个名为404.html的文件。 - 在404.html文件中编写您的404错误页面HTML代码。例如: ```html <!DOCTYPE html> <html> <head> <title>404 Not Found</title> </head> <body> <h1>404 Not Found</h1> <p>The requested URL was not found on this server.</p> </body> </html> ``` 2. 在您的settings.py文件中配置您的自定义错误页面。例如: ```python # your other settings # 404 error page handler404 = 'myapp.views.my_custom_404_view' # 500 error page handler500 = 'myapp.views.my_custom_500_view' ``` 在这个例子中,我们配置了handler404和handler500变量,它们分别指向我们自定义404和500错误处理视图。这告诉Django,在出现404或500错误时,请使用我们自定义错误页面来响应请求。 3. 在您的views.py文件中定义您的自定义404或500错误处理视图。例如: ```python from django.shortcuts import render def my_custom_404_view(request, exception=None): return render(request, '404.html', status=404) def my_custom_500_view(request): return render(request, '500.html', status=500) ``` 在这个例子中,我们定义了两个视图函数,它们分别用于处理404和500错误。这些视图函数将渲染我们的自定义错误页面并返回适当的状态码。 注意:如果您只想自定义404或500错误页面中的一项,只需配置handler404或handler500变量和相应的视图函数即可。 通过这种方式,当Django发生404或500错误时,它将使用我们的自定义错误页面来响应请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值