SpringMVC:上传与拦截器之一
2022/2/8 23:13:40
本文主要是介绍SpringMVC:上传与拦截器之一,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文件上传
文件的上传需要使用post请求,且enctype
需为multipart/form-data
(分段数据)
<form th:action="@{/testUp}" method="post" enctype="multipart/form-data"> </form>
@RequestMapping("/testUp") public String testUp(MultipartFile phone) { System.out.println(phone.getName()); System.out.println(phone.getOriginalFilename()); return "success"; }
<!--需要在SpringMVC配置文件中配置文件上传解析器--> <!--注意:id必须叫multipartResolver--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
上传
@RequestMapping("/testUp") public String testUp(MultipartFile phone,HttpSession session) throws IOException { //通过session创建servletContext对象 ServletContext servletContext = session.getServletContext(); // 通过servletContext对象获取photo的真实路径 String realPath = servletContext.getRealPath("/photo"); // 判断路径是否存在,如果不存在则创建相对应的路径。 File file = new File(realPath); if(!file.exists()){ file.mkdir(); } // 获取文件名 String name = phone.getOriginalFilename(); // 拼接路径 String path=realPath+File.separator+name; // 上传 phone.transferTo(new File(path)); return "success"; }
// 获取文件名 String filename = phone.getOriginalFilename(); // 解决重名问题,使用UUID作为文件名 // 获取文件的后缀 String suffixName = filename.substring(filename.lastIndexOf(".")); // 将UUID转换为String类型 String uuid = UUID.randomUUID().toString(); // 获取新的文件名 String realFileName=uuid+suffixName;
拦截器
-
创建一个类去实现
HandlerInterceptor
,并重写三个方法。public class TestInterceptor implements HandlerInterceptor{}
-
SpringMVC
的在配置文件中注册拦截器<!-- 配置拦截器--> <mvc:interceptors> <bean class="com.boerk.mvc.interceptor.TestInterceptor"></bean> </mvc:interceptors> <!-- 或者--> <mvc:interceptors> <ref bean="testInterceptor"></ref> </mvc:interceptors>
-
也可以使用拦截器拦截指定的路径
<mvc:interceptor> <!--拦截所有请求--> <mvc:mapping path="/**"/> <!--排除前往主页的请求--> <mvc:exclude-mapping path="/"/> <ref bean="testInterceptor"></ref> </mvc:interceptor>
这篇关于SpringMVC:上传与拦截器之一的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性