SpringMVC实现文件上传、拦截器

文件上传:

  1. 需要的jar包:
    ①commons-fileupload.jar
    ②commons-io.jar
  2. 实现MultpartResolver接口,具体如下:
    配置:CommonsMultipartResolver用于实现文件上传
<!-- 实现文件上传  其中bean的id必须为multipartResolver-->
   	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
   		<property name="defaultEncoding" value="UTF-8"></property>
   		<property name="maxUploadSize" value="102400"></property>
   	</bean>

处理方法:

//文件上传
	@RequestMapping(value="testUpload")
	public String testUpload(@RequestParam("uploadfile") MultipartFile file) throws IOException {
		String fileName = file.getOriginalFilename();
		InputStream input = file.getInputStream();
		OutputStream out = new FileOutputStream("f://"+fileName);
		byte[] bs = new byte[1024];
		int len = -1;
		while ((len = input.read(bs))!=-1) {
			out.write(bs, 0, len);
		}
		out.close();
		input.close();
		System.out.println("上传成功");
		return "success";
	}

拦截器:拦截器的原理和过滤器相同。
a.SpringMVC:编写拦截器,必须实现一个接口HandlerInterceptor

public class MyInterceptor implements HandlerInterceptor{

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("视图渲染完毕");
	}
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("拦截响应");
	}
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("拦截请求");
		return true;//true:拦截操作之后放行,false:拦截之后不放行,请求终止
	}
}

b.配置:叫自己写的拦截器配置到springMVC中:

	<!-- 配置拦截器,默认拦截所有请求 -->
   	<mvc:interceptors>
   		<!-- 配置具体的拦截路径 -->
   		<mvc:interceptor>
   			<!-- 指定拦截的路径 -->
   			<mvc:mapping path=""/>
   			<!-- 指定不拦截的路径 -->
   			<mvc:exclude-mapping path=""/>
   			<bean class="com.springmvc.Interceptor.MyInterceptor"></bean>
   		</mvc:interceptor>
   	</mvc:interceptors>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值