SpringMVC详解五、@ResponseBody、@RequestBody、HttpEntity、ResponseEntity、文件上传、HandlerInterceptor拦截器及异常处理


1MultipartFile :文件上传

2、使用@ResponseBody返回的数据转成json

        @JsonFormat修改时间在json中的格式

3、使用@RequestBody接收请求体数据

4、使用HttpEntity参数获取请求头请求体

5、使用ResponseEntity返回值操作响应头和响应体:下载文件

6HandlerInterceptor拦截器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值