您的位置:首页 > 编程语言 > Java开发

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服务器上发布,测试拦截效果是否达到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  upload file interceptor