SpringBoot中处理全局统一异常(九)

本篇文章主要介绍的是SpringBoot项目进行全局异常的处理。在这里插入图片描述

 <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

1.例如文件上传
创建index.html

<body>
   <form action="uploadFile" method="post" enctype="multipart/form-data">
       <input type="file" name="mf"><br>
       <input type="submit" value="上传">
   </form>
 </body>

定义Handler处理上传请求

@Controller
public class FileController {
   /***
    * 处理文件上传的请求
    * mf:绑定客户端提交的文件数据(上传文件)
    * **/
   @RequestMapping("/uploadFile")
   public void uploadFile(MultipartFile mf,HttpSession session){
       System.out.println("===="+mf.getName());
       System.out.println("===="+mf.getOriginalFilename());
       System.out.println("===="+mf.getContentType());
       //获得upload目录,在服务器上的绝对路径
       String path = session.getServletContext().getRealPath("/upload");
       File f=new File(path);
       if(!f.exists()){
           f.mkdirs();
       }
       
       //获得文件名称
       String fileName=mf.getOriginalFilename();
       fileName=UUID.randomUUID().toString().replace("-","")+
               fileName.substring(fileName.lastIndexOf("."));
       //创建目标文件
       File dest = new File(path,fileName);
       /***
        * 将上传的文件拷贝到磁盘目录
        * **/
       try {
           mf.transferTo(dest);
       } catch (IllegalStateException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
   }
}


我们限制文件上传的大小,限制上传文件只能是1kb
application.properties

spring.servlet.multipart.max-file-size=1KB

上传会出现异常
在这里插入图片描述
定义全局异常MyException使用@ControllerAdvice和@ExceptionHandler注解

@ControllerAdvice
@Component
public class MyException {
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public void firstException(MaxUploadSizeExceededException max, HttpServletResponse res) throws IOException {
     res.setContentType("text/html;charset=utf-8");
        PrintWriter out = res.getWriter();
        out.write("上传文件大小超出限制!");
        out.flush();
        out.close();
    }
}

再次上传图片
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值