springboot 自定义404、500错误提示页面的实现

目录
  • springboot 默认的异常处理机制
  • 使用模板引擎
    • 使用示例
  • 没有使用模板引擎

springboot 默认的异常处理机制

springboot 默认已经提供了一套处理异常的机制。一旦程序中出现了异常 springboot 会向 /errorurl 发送请求。在 springboot 中提供了一个名为 BasicErrorController 的类来处理 /error 请求,然后跳转到默认显示异常的页面来展示异常信息

使用模板引擎

在使用 thymeleaf 等模板引擎时,springboot 会自动到 src/main/resources/templates/error/,文件夹下寻找 404.html、500.html 的错误提示页面

错误提示页面的命名规则就是:错误码.html,如 404404.html500500.html

使用示例

创建 springboot 项目如下

404、500 错误提示页面结构如下

application.properties 项目配置文件

server.port=8080

#它的默认值就是classpath:/templates/,源码在ThymeleafProperties类中
spring.mvc.view.prefix=classpath:/templates/
#它的默认值就是.html,源码在ThymeleafProperties类中
spring.mvc.view.suffix=.html
spring.thymeleaf.cache=false

404 页面内容如下

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>404</title>
    <link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}" rel="external nofollow"  rel="external nofollow" />
    <link rel="stylesheet" type="text/css" th:href="@{/css/404.css}" rel="external nofollow" />
</head>
<body>
	<div id="banner" style="height: 600px;width: 600px;margin-left: 370px"></div>
</body>
</html>

500 页面内容如下

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>500</title>
    <link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}" rel="external nofollow"  rel="external nofollow" />
    <link rel="stylesheet" type="text/css" th:href="@{/css/500.css}" rel="external nofollow" />
</head>
<body>
    <div id="banner" style="height: 600px;width: 600px;margin-left: 370px"></div>
</body>
</html>

controller 如下

@Controller
public 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 错误提示页面如下

不用写额外的映射器,就能直接请求到

到此这篇关于springboot 自定义404、500错误提示页面的实现的文章就介绍到这了,更多相关springboot 自定义错误页面内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot实现自定义错误页面的方法(错误处理机制)

    一般我们在做项目的时候,错误机制是必备的常识,基本每个项目都会做错误处理,不可能项目一报错直接跳到原始报错页面,本篇博客主要针对springboot默认的处理机制,以及自定义错误页面处理进行讲解,需要的朋友们下面随着小编来一起学习学习吧! 默认效果示例 springboot他是有自己默认的处理机制的.在你刚创建一个springboot项目去访问一个没有的路径会发现他是会弹出来这样的信息. 而我们用postman直接接口访问,会发现他返回的不再是页面.默认响应一个json数据 这时候该有人在想,s

  • SpringBoot 利用thymeleaf自定义错误页面

    导入thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 自定义异常类 建立监听异常类 MyException.class package com.example.demo.domain; public class My

  • SpringBoot2.3定制错误页面的方法示例

    一. 问题背景 后台: SpringBoot 2.3.1(官方2.3版本修改了很多,抛弃了很多以前能用的方法) 前端: Layui(前端用哪个框架问题不大) 技术: SpringBoot+Thymeleaf+Layui 情况:我想将Layui提供好的错误页面作为SpringBoot默认的错误页面,而且Layui提供的错误页面位置并不是放在/静态资源文件夹/error,而是在如下: 二. SpringBoot的错误页面机制 错误页面机制的原理详情可以看Day41--错误处理原理&定制错误页面以及D

  • Springboot错误页面和错误信息定制操作

    目录 1.错误页面自定义 2.错误数据 2.1 默认错误数据 2.2 自定义错误数据 SpringBoot2.1.4错误处理机制 前面一片已经介绍了springboot错误处理的机制,其实从整个分析过程中我们已经大概知道如何定制了. 1.错误页面自定义 springboot有个默认的错误页面,但是开发时错误页面肯定是自己定义的.那该如何定义? 在DefaultErrorViewResolver类中有下面几个方法, private ModelAndView resolve(String viewN

  • springboot 自定义404、500错误提示页面的实现

    目录 springboot 默认的异常处理机制 使用模板引擎 使用示例 没有使用模板引擎 springboot 默认的异常处理机制 springboot 默认已经提供了一套处理异常的机制.一旦程序中出现了异常 springboot 会向 /error 的 url 发送请求.在 springboot 中提供了一个名为 BasicErrorController 的类来处理 /error 请求,然后跳转到默认显示异常的页面来展示异常信息 使用模板引擎 在使用 thymeleaf 等模板引擎时,spri

  • Django 自定义404 500等错误页面的实现

    在开发网站的过程中,404,500错误,是不可避免产生的. 一旦产生了这种错误,很多可以通过web server 来处理.比如使用 apache 的定义 或者nginx 的定义.都可以定向处理.如果单纯在django里面可以处理吗?肯定是可以的,django提供了相应的处理方式,只要在django里 起步 面定义了,无论你今后部署在apache下或者是nginx下,都是生效的. 要想自定义错误页面,需要关闭调试模式 DEBUG = False ,因为调试模式的错误页面是开发下会显示错误信息的.

  • django的403/404/500错误自定义页面的配置方式

    要实现标题的功能,总共分四步: 1.创建html错误页 2.配置settings 3.编写视图 4.配置url 我的开发环境: django1.10.3 python2.7.12 前期工作 创建项目及app $ django-admin.py startproject Test ... $ python manage.py startapp myapp ... 1.创建html错误页 在Test目录下,创建templates文件夹 在文件夹下创建404.html/403.html/500.htm

  • nuxt.js写项目时增加错误提示页面操作

    为项目增加错误提示页面,比如后端接口没有数据或接口报错的时候,如果不增加错误提示页面的话,那接口报错的信息就会在页面中显示,这显然不利于用户体验. 实际操作过程中,可能因为各种原因无法显示正确的返回页面,比如本身这篇文章的id不存在,或者网络请求问题,这时候就需要一个错误展示页用来提示用户: nuxt.js官方也有错误提示页面的写法:传送门-> 官方错误提示页面的写法 此项目中的错误提示页面是放在layouts目录中: layouts中的error.vue页面内容为: <template>

  • 在Python的Django框架中编写错误提示页面

    你应该在生产环境中把TEMPLATE_DEBUGFalse 如果这个设为`` True`` ,为了在那个好看的错误页面上显示足够的东西,Django的模版系统就会为每一个模版保存一些额外的信息. 实现一个404模板 如果`` DEBUG`` 设置为`` True`` ,Django会显示那个自带的404错误页面. 但如果`` DEBUG`` 被设置成`` False`` ,那它的行为就不一样了: 他会显示一个在你的模版根目录中名字叫`` 404.html`` 的模版 所以,当你准备部署你的应用时

  • spring boot自定义404错误信息的方法示例

    前言 本文将给大家简单介绍一下,在springboot中怎么个性化404错误信息,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 返回json @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer(){ @Override public void customize(ConfigurableEmbe

  • SpringBoot定制三种错误页面及错误数据方法示例

    目录 定制错误页面 自定义 error.html 自定义动态错误页面 自定义静态错误页面 定制错误数据 1. 自定义异常处理类 2. 自定义错误属性处理工具 我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等. 定制错误页面 我们可以通过以下 3 种方式定制 Spring Boot

  • python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)

    有没有一种方法可以为Django项目中的每个应用程序创建多个自定义错误模板,我的意思是,在我的项目中,我有3个应用程序,每个应用程序将显示3种不同的custom 404错误. 现在,我在后台应用程序和前台显示相同的404错误页面. 最佳答案 创建一个自定义error view并将其分配给根urls.py中的handler404变量: from django.views.defaults import page_not_found def my_error_404(request, excepti

  • python django 访问静态文件出现404或500错误

    django static文件夹下面的内容方法不了 出现404 500错误 需要查看自己的settings文件确保有一下内容 import os PROJECT_ROOT = os.path.dirname(__file__) DEBUG = True STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(PROJECT_ROOT, 'static'), ) STATICFILES_FINDERS = ( 'django.contri

  • Django自定义全局403、404、500错误页面的示例代码

    自定义模板 403 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>403-禁止访问</title> </head> <body> HTTP 403 - 禁止访问 </body> </html> 404 <!DOCTYPE html> <h

随机推荐