1.文件上傳
所需jar包
commons-fileupload-1.3.3.jar
(1)配置spring-mvc.xml
<!-- 上傳文件的設置 ,maxUploadSize=-1,表示無窮大。uploadTempDir爲上傳的臨時目錄 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576000000"></property>
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
(2)測試
@Controller
@RequestMapping("/file/")
public class FileAction
{
@RequestMapping(value="upload")
public String upload(String desc,MultipartFile upload)
{
System.out.println(desc);
//保存文件
String fileName = (UUID.randomUUID()+"").replaceAll("-", "");
//得到原文件名
String oname = upload.getOriginalFilename();
File file = new File("d:\\upload\\"+fileName+oname.substring(oname.lastIndexOf(".")));
try
{
upload.transferTo(file);
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return "success";
}
}
(3)jsp頁面
<body>
<form action="../file/upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="upload"/><br />
描述:<input type="text" name="desc" /><br />
<input type="submit" value="提交 " />
</form>
</body>
2.文件下載
參考java的文件下載
注:因爲如果文件過大,會導致內存出現問題
3.攔截器
(1)配置spring-mvc.xml
<!--攔截器 -->
<mvc:interceptors>
<!-- 多個攔截器,順序執行 -->
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="net.study.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
(2)測試(與struts類似)
package net.study.interceptor;
public class MyInterceptor implements HandlerInterceptor {
@Override
//最終
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("afterCompletion");
}
@Override
//後置
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
System.out.println("postHandle");
}
@Override
//前置
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("preHandle");
return true;
}
}
4.異常處理
(1)配置spring-mvc.xml
<!-- 異常處理 -->
<bean id="handlerExceptionResolver" class="net.study.exception.MyExceptionResolver"/>
(2)測試
package net.study.exception;
public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2,
Exception ex) {
ModelAndView mv = new ModelAndView();
mv.setViewName("error");
mv.addObject("ex", ex);
return mv;
}
}