Spring MVC
SpringMVC是基于MVC思想的JAVA WEB实现框架,是Spring家族的一员,它基于前置控制器来接收并分发请求,支持参考验证、请求参数封装、拦截、Restful等功能,是目前较为流行的MVC框架
本系列学习笔记包含如下的课程内容:
- MVC思想
- Hello案例
- 请求和响应处理
- 文件上传和下载处理
- 参数验证
- 请求拦截
- RESTful风格
- 日志
File Upload
文件上传是 Web 应用的常见功能用例,SpringMVC 提供 MultipartResolver 接口来处理。
配置 pom.xml
1 | <dependency> |
MultipartResolver
A strategy interface for multipart file upload resolution.
There is no default resolver implementation used for Spring DispatcherServlets, to define an implementation, create a bean with the id “multipartResolver” in a DispatcherServlet’s application context, likeorg.springframework.web.multipart.commons.CommonsMultipartResolver
for Jakarta Commons FileUpload.
配置 MultipartResolver 实现类
在配置信息类中声明一个方法,来提供 MultipartResolver 实现类,注意方法名就是默认 bean id.
1 | /** |
当然,如果你采用xml配置,在xml中配置一个叫 multipartResolver的Bean即可.
Form 表单
写一个 form 表单来提交需要上传的文件
1 | <form method="post" action="${path}/request/demo4" enctype="multipart/form-data"> |
注意:
input type="file"
- enctype 必须声明为
multipart/form-data
,否则仅会上传文件名字符串
控制器
1 | "/demo4", method = RequestMethod.POST) (value = |
- MultipartFile: 用来接收和封装上传的文件
- application.getRealPath():获得运行期项目根目录
- org.apache.commons.io.FileUtils: 提供了方便的 io 方法