SpringMVC通关秘籍(下):日期转换器、拦截器与文件上传的奇幻冒险

摘要:上篇我们搞定了JSON和乱码,本篇继续冲刺!自定义日期转换器让"字符串"变"Date",拦截器当"安检员"守好请求大门,还有文件上传的"快递驿站"搭建指南!


目录

  1. 一、日期转换器:让字符串和Date对象"无缝切换"

  2. 二、拦截器:SpringMVC的"安检员"(附与Filter的区别)

  3. 三、文件上传:搭建你的"快递驿站"(从依赖到Controller)


一、日期转换器:让字符串和Date对象"无缝切换"

前端传个日期字符串(比如"2026-03-19"),后端怎么直接转成java.util.Date?SpringMVC默认不会自动转,得我们自己写个"翻译官"------日期转换器!

1. 第一步:创建日期转换器类

实现Converter<String, Date>接口:

复制代码
2. 第二步:在SpringMVC配置文件中注册

在springmvc.xml里配置转换器工厂,并让<mvc:annotation-driven>用上它:

复制代码
3. 第三步:Controller里直接用Date接收
复制代码

前端请求:/testDate?birthday=2026-03-19,完美接收!


二、拦截器:SpringMVC的"安检员"(附与Filter的区别)

拦截器(Interceptor)就像机场的安检员,在请求到达Controller之前和之后进行检查。它和Filter(过滤器)很像,但出身不同!

1. Filter vs Interceptor:出身和场景大不同
对比项 Filter(过滤器) Interceptor(拦截器)
原理 方法回调 AOP(面向切面编程)
依赖 不依赖Spring框架 必须依赖Spring框架
常见场景 中文乱码处理 登录校验、权限校验
2. 拦截器使用第一步:创建拦截器类

实现HandlerInterceptor接口,有三个方法可以重写:

复制代码
3. 拦截器使用第二步:在SpringMVC配置文件中配置

在springmvc.xml里配置拦截路径和排除路径:

复制代码

三、文件上传:搭建你的"快递驿站"(从依赖到Controller)

文件上传就像开"快递驿站":前端是寄件人,表单是快递盒,后端是驿站管理员。我们来一步步搭建!

1. 第一步:导入依赖(pom.xml)

需要commons-fileupload依赖来处理文件上传:

复制代码
2. 第二步:配置文件上传解析器(springmvc.xml)

注意:这个Bean的id必须是multipartResolver!

复制代码
3. 第三步:写上传表单(JSP/HTML)

表单必须满足三个条件:method="post"、enctype="multipart/form-data"、input type="file":

复制代码
4. 第四步:写Controller处理上传

用MultipartFile接收上传的文件:

复制代码

注:记得在项目webapp下创建upload文件夹哦!


总结

SpringMVC的三大高级技能我们都搞定啦:

  1. 日期转换器:自定义Converter,字符串转Date不是梦;

  2. 拦截器:实现HandlerInterceptor,登录校验权限控;

  3. 文件上传:导入依赖配解析器,MultipartFile来接收。

至此,SpringMVC新手村通关!恭喜你成为初级SpringMVC战士!


互动话题

你用拦截器做过最有意思的功能是什么?评论区分享一下吧!

相关推荐
IvorySQL36 分钟前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔1 小时前
SQL 脚本的导入顺序
数据库·sql
bkspiderx1 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
代码什么用1 小时前
Spring基础使用
java·后端·spring
代码什么用1 小时前
Spring对IoC的实现
数据库·spring
程序员老陆1 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光2 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
Su米苏2 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园2 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁2 小时前
Java 异常体系详解:从字节码原理到最佳实践
java