1.文件上传
- 配置xml文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--最大上传文件大小--> <property name="maxUploadSize" value="10240000" /> <!--默认编码--> <property name="defaultEncoding" value="UTF-8" /> <!--内存的最大空间--> <property name="maxInMemorySize" value="102400" /> </bean>
- 实现文件上传的类
@RequestMapping(value = "upLoadFile") public String upLoadFile(@RequestParam(value = "desc")String desc, @RequestParam(value = "upFile")MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); FileOutputStream fileOut = new FileOutputStream("D:\\" + file.getOriginalFilename()); byte[] bytes = new byte[1024]; int len = -1; while((len = inputStream.read(bytes))!=-1){ fileOut.write(bytes,0,len); } fileOut.close(); inputStream.close(); System.out.println("文件上传成功"); return "success"; }
- jsp实现
上传文件: <form action="${pageContext.request.contextPath}/mvc/upLoadFile" method="post" enctype="multipart/form-data"> 描述:<input type="text" name="desc"> <input type="file" name="upFile"> <input type="submit" value="上传"> </form>
2.拦截器实现
-
编写拦截类(实现HandlerInterceptor接口)
public class FirstHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("第一个拦截请求"); /*true放行 进入控制类 false就直接在这层拦截了*/ return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("第一个拦截响应"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("第一个JSP渲染完毕"); } } 2.配置xml <mvc:interceptors> <mvc:interceptor> <!--拦截的请求--> <mvc:mapping path="/mvc/wec.html"/> <!--不拦截的请求--> <mvc:exclude-mapping path="/mvc/getObject" /> <bean class="com.xiaonuo.handlerInterceptor.FirstHandlerInterceptor" /> </mvc:interceptor>
3.第二个同理配置拦截了
package com.xiaonuo.handlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SecondHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("第二个拦截请求"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("第二个拦截响应"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("第二个JSP渲染完毕"); } }
4.配置第二个xml(包含第一个)
<mvc:interceptors> <mvc:interceptor> <!--拦截的请求--> <mvc:mapping path="/mvc/wec.html"/> <!--不拦截的请求--> <mvc:exclude-mapping path="/mvc/getObject" /> <bean class="com.xiaonuo.handlerInterceptor.FirstHandlerInterceptor" /> </mvc:interceptor> <mvc:interceptor> <!--拦截的请求--> <mvc:mapping path="/mvc/wec.html"/> <!--不拦截的请求--> <mvc:exclude-mapping path="/mvc/getObject" /> <bean class="com.xiaonuo.handlerInterceptor.SecondHandlerInterceptor" /> </mvc:interceptor> </mvc:interceptors>
效果截图: