SpringBoot2.0学习之自定义错误页面

SpringBoot2.0学习之自定义错误页面

首先,什么是自定义错误页面?

在程序出现错误的时候,跳转到自己定义好的页面。

那么,为什么要自定义错误页面?

当然是为了更好的用户体验,总不能让用户点着点着看到个500的错误吧… 也拉低了自己的水平不是?
ps: 什么是好的用户体验,就是用户用这个软件的时候感觉自己生活在2050年,而且所有的操作他一看就明白。o( ̄︶ ̄)o

接下来,我们怎么自定义错误页面呢?

1. 创建配置类,通过重写WebServerFactoryCustomizer的customize接口来创建自定义的错误页面。代码如下:
@Configuration
public class ErrorPageConfig {

    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
        return factory -> {
            ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND,
                    "/error/404");
            ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST,
                    "/error/500");
            ErrorPage errorPage500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,
                    "/error/500");
            factory.addErrorPages(errorPage400, errorPage404,
                    errorPage500);
        };
    }

}
2. 创建错误跳转的控制器
@Controller
@RequestMapping("/error")
public class ErrorController {

    @RequestMapping("/404")
    public String to404(){
        return "error/404";
    }

    @RequestMapping("/500")
    public String to500(){
        return "error/500";
    }
3. 创建错误页面

404.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>这里是404错误页面</h1>
</body>
</html>

500.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>这里是500错误页面</h1>
</body>
</html>
4. 编写测试代码进行测试,如下:
	@RequestMapping("/err")
    public String err(){
        int i = 1/0;
        return "index";
    }

    @RequestMapping("/exception")
    public String exception() throws Exception {
        throw new Exception("手动抛出异常");
    }
测试结果:
1.访问不存在的路径http://localhost:8080/aaa, 得到结果:

在这里插入图片描述

2. 访问http://localhost:8080/error/err, 得到结果:

在这里插入图片描述

3. 访问http://localhost:8080/error/exception, 得到结果:

在这里插入图片描述

Ps: 此方法只适用于内嵌服务器。打war包的话此配置是无效的,如果需要打war包使用的话可以使用拦截器或自定义静态error页面。

传送门:https://blog.youkuaiyun.com/IT_faquir/article/details/79521417

又一个Ps: 毕竟咱也还是个菜鸟,如果有写的不好或者不对的地方,请指出,我会及时修改,抱拳!


人生总是不往自己想的方向发展,所以成功的只有坚持到最后并且幸运的人吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值