Spring mvc实现上传文件进度条
2016-03-10 17:41
253 查看
项目概述:Maven,Servlet3.0,Spring mvc4.2.0
实现思路:客户端发送请求,Spring mvc框架的DispatchServlet的doDispatch方法里面会先去检查有没有配置multipartResolver,有的话会先执行他的resolveMultipart,所以关键点在这,我重写CommonsMultipartResolver的resolverMultipart,该方法会在请求来的时候执行,
下面的parseRequest方法会在resolverMultipart执行到return super.resolverMultipart时候执行,父类的resolverMultipart方法调用了该方法,我们可以在其中给FileUpload设置一个自己实现的监听器(重写ProgressListener接口的Update方法)
之后就可以安心的让文件进入Controller让其上传了,ProgressListener会对上传文件对其监听,这样我们把每次监听到的结果放到session里,然后客户端轮询的方式去访问这个session
我的客户端轮询脚本:
实体属性:
文中说的有什么不对的地方请纠正指教。
备注:Spring mvc4版本以后用@ResponseBody返回json的时候需要jackson-core和jackson-databind两个包,导入这两包就可以了,不需要在xml配置。4以前的版本导入的jackson包为jackson-mapper和jackson-core
实现思路:客户端发送请求,Spring mvc框架的DispatchServlet的doDispatch方法里面会先去检查有没有配置multipartResolver,有的话会先执行他的resolveMultipart,所以关键点在这,我重写CommonsMultipartResolver的resolverMultipart,该方法会在请求来的时候执行,
下面的parseRequest方法会在resolverMultipart执行到return super.resolverMultipart时候执行,父类的resolverMultipart方法调用了该方法,我们可以在其中给FileUpload设置一个自己实现的监听器(重写ProgressListener接口的Update方法)
之后就可以安心的让文件进入Controller让其上传了,ProgressListener会对上传文件对其监听,这样我们把每次监听到的结果放到session里,然后客户端轮询的方式去访问这个session
我的客户端轮询脚本:
实体属性:
文中说的有什么不对的地方请纠正指教。
备注:Spring mvc4版本以后用@ResponseBody返回json的时候需要jackson-core和jackson-databind两个包,导入这两包就可以了,不需要在xml配置。4以前的版本导入的jackson包为jackson-mapper和jackson-core
相关文章推荐
- spring在web工程和普通java工程使用时候区别
- 【spring mvc】 用spring mvc 报错406解决
- JAVA学习笔记
- Kettle调用Java文件(Jar包)
- java.lang.NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()异常分析
- java闭包, 作用域链 最完美的讲述
- Google Java 编程风格指南
- JAVA的String的传值和传地址问题
- java实现观察者模式
- Java多线程UDP客户端与服务器间使用Socket通信
- Java 交换两个变量值
- Spring 注解学习手札(八)补遗——@ExceptionHandler
- 第七届蓝桥杯部分练习题答案(Java)
- 【J2EE】:Java EE应用的组件
- Myeclipse离线安装svn插件
- Zookeeper的集群配置和Java测试程序
- JAVA高级程序设计学习计划
- springbooot之freemarker
- ROS使用IDE Eclipse
- java.util.concurrent包 (备忘)