springboot笔记—错误处理和文件上传下载

错误处理

友好页面

先演示非友好页面,修改 FastJsonController 类中的 test 方法:

[图片上传失败...(image-adcc6f-1524637491856)]

[图片上传失败...(image-a605b3-1524637491856)]

当系统报错时,返回到页面的内容通常是一些杂乱的代码段,这种显示对用户来说不友好,因此我们需要自定义一个友好的提示系统异常的页面。

在 src/main/resources 下创建 /public/error,在该目录下再创建一个名为 5xx.html 文件,该页面的内容就是当系统报错时返回给用户浏览的内容:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>系统错误</title>

<link href="/css/index.css" rel="stylesheet"/>

</head>

<body>

<div>

    <h2>系统内部错误</h2>

</div>

</body>

</html>

路径时固定的,Spring Boot 会在系统报错时将返回视图指向该目录下的文件。

如下图:

[图片上传失败...(image-5f24a2-1524637491856)]

上边处理的 5xx 状态码的问题,接下来解决 404 状态码的问题。

当出现 404 的情况时,用户浏览的页面也不够友好,因此我们也需要自定义一个友好的页面给用户展示。

在 /public/error 目录下再创建一个名为 404.html 的文件:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>访问异常</title>

<link href="/css/index.css" rel="stylesheet"/>

</head>

<body>

<div>

    <h2>找不到页面</h2>

</div>

</body>

</html>

我们请求一个不存在的资源,如:http://localhost:8080/fastjson/test2,结果如下图:

[图片上传失败...(image-3be006-1524637491856)]

全局异常捕获

如果项目前后端是通过 JSON 进行数据通信,则当出现异常时可以常用如下方式处理异常信息。

编写一个类充当全局异常的处理类,需要使用 @ControllerAdvice 和 @ExceptionHandler 注解:

[图片上传失败...(image-f92646-1524637491856)]

其中,方法名为任意名,入参一般使用 Exception 异常类,方法返回值可自定义。

启动项目,访问 http://localhost:8080/fastjson/test,结果如下图:

[图片上传失败...(image-b11c78-1524637491856)]

我们还可以自定义异常,在全局异常的处理类中捕获和判断,从而对不同的异常做出不同的处理。

文件上传和下载

添加依赖

               <dependency>

                        <groupId>commons-io</groupId>

                        <artifactId>commons-io</artifactId>

                        <version>2.4</version>

               </dependency>

实现

public class FileInfo {

private String path;

public FileInfo(String path) {

    this.path = path;

}

public String getPath() {

    return path;

}

public void setPath(String path) {

    this.path = path;

}

}

[图片上传中...(image-214f96-1524637491856-1)]

基本上都是在学习 javaweb 时用到的 API。

文件上传测试结果如下图:

[图片上传中...(image-6cdff4-1524637491856-0)]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容