1、MultipartFile :文件上传
2、使用@ResponseBody将返回的数据转成json
@JsonFormat修改时间在json中的格式
3、使用@RequestBody接收请求体数据
4、使用HttpEntity参数获取请求头和请求体
5、使用ResponseEntity返回值操作响应头和响应体:下载文件
6、HandlerInterceptor拦截器
7、异常处理
1、文件上传
文件上传在SpringMVC中如何实现:
1、准备一个文件上传的表单
2、导入文件上传需要的jar包
commons-fileupload-1.2.1.jar、
commons-io-1.4.jar
3、配置文件上传解析器: CommonsMultipartResolver
4、配置Controller控制器的代码
1.1、准备一个文件上传的表单
<body>
<form action="${ pageContext.request.contextPath }/upload"
method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username"/><br/>
头像:<input type="file" name="photo"/><br/>
<input type="submit" />
</form>
</body>
1.2、导入文件上传需要的jar包
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
commons-logging-1.1.3.jar
log4j-1.2.17.jar
spring-aop-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
spring-web-4.0.0.RELEASE.jar
spring-webmvc-4.0.0.RELEASE.jar
1.3、配置文件上传解析器
<!-- 配置在SpringMVC中解决文件上传的协议的解析器
id 必须是multipartResolver
-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 配置字符集为UTF-8 -->
<property name="defaultEncoding" value="UTF-8" />
</bean>
1.4、编写文件上传的Controller控制器中的代码:
单个文件上传:
@RequestMapping("/upload")
public String upload(String username, MultipartFile photo) {
System.out.println("名字" + username);
try {
if (!photo.isEmpty() && photo != null) {
// 第二个\是转义第一个\
// photo.transferTo(new File("e:\\" +
// photo.getOriginalFilename()));
// 正常的是访问磁盘路径
photo.transferTo(new File("e://" + photo.getOriginalFilename()));
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "/index.jsp";
}
多个文件上传:
@RequestMapping(value = "/upload")
public String upload(String username,
@RequestParam(value = "photo") MultipartFile[] photo) {
System.out.println("用户名:" + username);
for (MultipartFile multipartFile : photo) {
// 说明有上传的内容
// isEmpty判断是否为空
if (multipartFile != null && !multipartFile.isEmpty()) {
try {
// transferTo 将文件写入到硬盘位置
// getOriginalFilenameaqb
multipartFile.transferTo(new File("e:\\"
+ multipartFile.getOriginalFilename()));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "forward:/index.jsp";
}
springmc的文件上传就两点:
参数:MultipartFile photo
方法:photo