# springmvc_05_interceptor_upload **Repository Path**: Yunios/springmvc_05_interceptor_upload ## Basic Information - **Project Name**: springmvc_05_interceptor_upload - **Description**: springmvc_05_interceptor_upload - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-02-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1 : 拦截器 1.1 拦截器的概念 SpringMVC中的Interceptor拦截器 的主要作用就是拦截用户的url请求, 并在执行handler方法的前中后加入某些特殊请求,类似于servlet里面的过滤器 1.2 拦截器的开发 * 定义一个拦截类,实现HandlerInterceptor接口 * 在springmvc.xml里面进行配置 总结:当我们的preHandler方法返回false时,剩下的两个方法不执行,而且handler也不执行 拦截器里面的preHandler,postHandler和afterCompletion方法是按顺序执行 当有多个拦截器同时存在时,如果有任意一个拦截器的preHandler方法返回false,则剩下的不执行 如果多个拦截器同时运行(preHandler方法返回true),那么preHanlder方法是按顺序执行,而其余两个 方法是按倒序执行 拦截器的执行顺序是按照在springmvc配置文件中的位置来顺序执行的 1.3 登陆验证拦截器实战 需求:只要登陆过的用户才有权限访问系统中的功能 步骤: * 在登陆成功后,将用户信息放入session * 当除了登陆验证的url请求的其他url请求时, 在拦截器的preHandler方法里面判断session是否有用户信息, 如果有,则放行通过,如果没有 ,跳转到登陆页面,提示用户登陆 2 : 文件的上传 文件的上传涉及到的内容 :单个文件上传,多个文件上传 2.1 单个文件的上传 * 文件上传默认是采用的apache的上传组件 commons-fileupload进行上传 * 引入相关的jar包 commons-fileupload.jar common-io.jar * 利用表单post提交 注意content-type的类型需要更改为 enctype = "multipart/form-data" form表单默认提交得到content-type的类型为 enctype="application/x-www-form-urlencoded" * 在springmvc.xml配置文件里面注册上传文件解析器 CommonsMultipartResolver 2.2 多个文件的上传 * 前面的步骤一样,在handler方法的参数里面 MultipartFile[] uploadFileBatch 在参数前面要加上@RequestParam * 循环uploadFileBatch数组,处理方式更单个文件处理方式一样 2.3 文件的下载 详见UploadTestController.downloadFile();