1、MultipartResolver

MultipartResolver接口提供了spring mvc的上传视图,MultipartResolver实例在请求转交给handlermapping之前。 也就是说DispatcherServlet ,在请求映射的时候,若找到MultipartResolver这个实例的话,

就直接把请求转交给MultipartResolver

/**
* Determine if the given request contains multipart content.
* <p>Will typically check for content type "multipart/form-data", but the actually
* accepted requests might depend on the capabilities of the resolver implementation.
* @param request the servlet request to be evaluated
* @return whether the request contains multipart content
*/
boolean isMultipart(HttpServletRequest request); /**
* Parse the given HTTP request into multipart files and parameters,
* and wrap the request inside a
* {@link org.springframework.web.multipart.MultipartHttpServletRequest}
* object that provides access to file descriptors and makes contained
* parameters accessible via the standard ServletRequest methods.
* @param request the servlet request to wrap (must be of a multipart content type)
* @return the wrapped servlet request
* @throws MultipartException if the servlet request is not multipart, or if
* implementation-specific problems are encountered (such as exceeding file size limits)
* @see MultipartHttpServletRequest#getFile
* @see MultipartHttpServletRequest#getFileNames
* @see MultipartHttpServletRequest#getFileMap
* @see javax.servlet.http.HttpServletRequest#getParameter
* @see javax.servlet.http.HttpServletRequest#getParameterNames
* @see javax.servlet.http.HttpServletRequest#getParameterMap
*/
MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException; /**
* Cleanup any resources used for the multipart handling,
* like a storage for the uploaded files.
* @param request the request to cleanup resources for
*/
void cleanupMultipart(MultipartHttpServletRequest request);

  MultipartResolver接口提供了3个方法:

boolean isMultipart(HttpServletRequest request): 检查当前请求是否是multipart content type

  resolveMultipart: 将httprequest转换成MultipartHttpServletRequest

已知的子类: CommonsMultipartResolverStandardServletMultipartResolver

  1. 第一个需要使用 Apache 的 commons-fileupload 等 jar 包支持,但它能在比较旧的 servlet 版本中使用。
  2. 第二个不需要第三方 jar 包支持,它使用 servlet 内置的上传功能,但是只能在 Servlet 3 以上的版本使用。

2、multipartRequest

  multipartRequest接口可以讲request对象封装成multipartRequest,提取请求的信息,MultipartReques类主要是对文件上传进行的处理。

最新文章

  1. [Erlang 0124] Erlang Unicode 两三事 - 补遗
  2. 跨域的另一种解决方案——CORS(Cross-Origin Resource Sharing)跨域资源共享
  3. 高级java必会系列二:多线程经常使用的3个关键字:synchronized、ReentrantLock、volatile
  4. Java输入/输出流体系
  5. php生成二维码可以有以下几种方式
  6. 项目开发--&gt;一键登录功能汇总
  7. codeforces 442C C. Artem and Array(有深度的模拟)
  8. MySQL导入txt文件
  9. 《C和指针》读书笔记——第一章 快速上手
  10. .NET程序编译原理
  11. 调侃Cookie
  12. AlertDialog基本用法详解
  13. Redis Windows版安装详解
  14. CentOS7修改主机名(hostname)
  15. web项目,ftl文件中的路径引入问题
  16. Basic Linux Privilege Escalation
  17. 三、安装cmake,安装resin ,tars服务,mysql 安装介绍,安装jdk,安装maven,c++ 开发环境安装
  18. iis 网页HTTP 错误 404.3 - Not Found解决方案
  19. clientHeight scrollHeight offsetHeight
  20. POJ - 1850 Code(组合数学)

热门文章

  1. oracle出现sga导致ORA-00821 ORA-00093报错解决办法
  2. Ubuntu安装后上网问题,
  3. [SQL]批量修改存储过程视图
  4. 对抗生成网络-图像卷积-mnist数据生成(代码) 1.tf.layers.conv2d(卷积操作) 2.tf.layers.conv2d_transpose(反卷积操作) 3.tf.layers.batch_normalize(归一化操作) 4.tf.maximum(用于lrelu) 5.tf.train_variable(训练中所有参数) 6.np.random.uniform(生成正态数据
  5. oracle 查看处理锁表
  6. Java中获取系统时间的四种方式
  7. vs2015下编译duilib的几个问题
  8. java方法体
  9. 20175213 2018-2019-2 《Java程序设计》第7周学习总结
  10. 堡垒机升级V3.2.14