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

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

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

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

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

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

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

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

@Configuration
public class ErrorPageConfig {

    @Bean
    public WebServerFactoryCustomizer 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




    
    Title


    

这里是404错误页面

500.ftl




    
    Title


    

这里是500错误页面

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.csdn.net/IT_faquir/article/details/79521417

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


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

你可能感兴趣的:(springboot2.0学习)