• Spring mvc实现文件上传


    Spring mvc实现文件上传和servlet一样,都要实现comment-Fileupload.jar和commons-io.jar,Spring mvc实现文件上传的代码比以前要有所简化,但是需要满足的条件是:要实现MultipartResolve接口,springMVC也提供了该接口的实现类CommonsMultipartResolver
    回顾一下以前实现文件上传
    JAVAWeb实现文件上传和下载

    先看下面这篇总结
    Spring mvc文件上传

    再看这里补充的部分
    以下是index.jsp页面代码
    在这里插入图片描述
    Controller层写一个testUpload()方法,方法有两个形参,一个是String类型的,一个是MultipartFile类型的,添加注解@RequestParam(“file”),接收前端form表单传过来的name值与注解参数相同,具体细节由下面两个图片可以看到
    在这里插入图片描述
    在这里插入图片描述
    下面是testUpload()方法的具体实现:
    在这里插入图片描述
    快捷键
    Ctrl+ Shift+r
    可以查询自己写的代码
    Ctrl+shift+t
    查询jar包中所包含的代码

    再看一下拦截器的概念Spring mvc异常解析器和拦截器
    对于以上文章补充以下内容

    请求拦截的流程图如下图所示:

    在这里插入图片描述
    自定义请求拦截的方法要实现HandlerInterceptor
    接口,要重写三个方法,preHandler()、afterCompletion() 、postHandler()
    由流程图可以看出,preHandler()方法是拦截请求前就做的,afterCompletion()方法是当jsp页面被渲染完毕后触发的,渲染的意思就是说,把这个js页面中所有内容,包括js 、css、JQuery
    都加载完毕。
    在这里插入图片描述
    在这里插入图片描述
    重点preHandler()方法,如果返回值是false的话,被拦截的controller层方法,不会执行,所以这里要把方法的返回值改为true
    将自己写的这个拦截器配置到spring mvc中,
    在这里插入图片描述
    如上面所示,如果不对添加其他的标签,则默认拦截所有请求。

    如果想拦截指定的请求如下配置
    在这里插入图片描述
    可以编写多个拦截器,
    多个拦截器之间的执行顺序是什么?
    假如我写了三个拦截器:MyInterceptor1、My Interceptor2、MyInterceptor3
    先把所有拦截器preHandler()的方法依次执行一遍,
    再从后往前
    先执行MyInterceptor3的拦截响应方法post Handler() ——> MyInterceptor2的拦截响应方法post Handler() ——> MyInterceptor1的拦截响应方法post Handler()
    最后,只执行Myintercept 3的afterCompletion()方法。
    MyInterceptor1和MyInterceptor2的after completion()方法不执行

  • 相关阅读:
    YOLOv8蒸馏 | 知识蒸馏 | 利用模型蒸馏改进YOLOv8进行无损涨点 | MimicLoss(在线蒸馏 + 离线蒸馏)
    如何退出或卸载奇安信天擎软件
    Kafka 典型问题与排查以及相关优化
    wx小程序-input事件改变数据
    申请400电话的详细步骤及操作指南
    互斥锁与条件变量的使用(c || c++ || python)
    C++笔记-八股
    C中的基本函数
    如何看懂SparkUI?
    记一次 .NET某MES自动化桌面程序 卡死分析
  • 原文地址:https://blog.csdn.net/m0_47010003/article/details/127698140