SpringMVC容器
2014-03-05 23:02
633 查看
springMVC文件上传下载----拦截器
A
1.导包
2.书写配置springMVC自己提供的文件上传的配置。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="100000000"> </property> </bean>
3.写jsp页面,注意文件上传的<form>表单里面的属性。
<form action="upload.spring" name="uploadForm" method="post" enctype="multipart/form-data"> ............ </form>
4.书写控制器UploadController
在控制器的方法处理中,从作用域中获取file文件,通过path路径和文件名将文件存入到当前工程的文件夹下。
package com.lh.controller; import java.io.File; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.commons.CommonsMultipartFile; @Controller public class UploadController { @RequestMapping("/upload") public String upload(HttpServletRequest request ,@RequestParam("file")CommonsMultipartFile file){ //从作用域中获取文件的path路径,通过request.getSession().getServletContext().getRealPath("upload")。 String path = request.getSession().getServletContext().getRealPath("upload"); //通过file来获取文件名。 String name = file.getOriginalFilename(); try { file.getFileItem().write(new File(path+"/"+name)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return "upload"; } return "success"; } }
5.测试文件是否上传成功。
B.====在springMVC中实现拦截器,调用它的3个方法。:
1.书写拦截器有两种方式:
=======1-1继承HandlerInterceptorAdaptor类,代码展示如下:
package com.lh.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class Interceptor1 extends HandlerInterceptorAdapter { //在控制器传递到拦截器将数据交给DisPacheServlet的过程中将资源清理。 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("The Main of claening...."); } //在方法之后 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("The Main of after..."); } //在方法之前 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("The Main of Before...."); return true; } }
=====1-2.实现HandlerInterceptor接口 代码展示如下:
package com.lh.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class Interceptor2 implements HandlerInterceptor{ //在控制器传递到拦截器将数据交给DisPacheServlet的过程中将资源清理。 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("The Mian of cleaning2....."); } //在方法之后 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("The Mian of After..."); } //在方法之前 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("The Mian of Befor....."); return true; } }
2. 在xml中配置拦截器:
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/register.spring"></mvc:mapping> <bean class="com.lh.interceptor.Interceptor1"></bean> </mvc:interceptor> </mvc:interceptors>
注:如果有多个拦截器就需要配置拦截器栈(先进后出)。
3.在tomcat服务器上发布,测试拦截效果是否达到。
相关文章推荐
- Spring和SpringMVC父子容器关系初窥
- spring和springmvc父子容器的理解
- 简述Spring容器与SpringMVC的容器的联系与区别
- spring和springMVC父子容器的原理
- SpringMVC源码 1 ContextLoaderListener和Servlet容器web.xml配置
- SpringMVC源码分析--容器初始化(四)FrameworkServlet
- Spring和SpringMVC父子容器关系初窥
- Spring和SpringMVC父子容器关系
- Spring与SpringMVC的容器关系分析
- springMVC源码分析--容器初始化(二)DispatcherServlet
- Spring 和SpringMVC 的父子容器关系
- SpringMVC源码分析--容器初始化(五)DispatcherServlet
- springMVC容器加载源码分析
- Spring和SpringMVC父子容器关系
- Spring与SpringMVC的容器关系分析
- Spring源码分析3----Web环境中的SpringMVC(Web容器中的上下文的设计)
- 《转》Spring和SpringMVC父子容器关系初窥
- Resin4和Tomcat8容器下部署基于Maven的SpringMVC项目
- Spring和SpringMVC父子容器关系初窥
- springmvc带参数链接跳转,实现单一样式容器