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战士!


互动话题

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

相关推荐
XDHCOM17 小时前
ORA-32484重复列名错误,ORACLE数据库CYCLE子句故障修复与远程处理方案
数据库·oracle
云烟成雨TD17 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
Wenweno0o17 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨17 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg32132117 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
翻斗包菜17 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
gelald17 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川17 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
呆瑜nuage17 小时前
MySQL表约束详解:8大核心约束实战指南
数据库·mysql
一轮弯弯的明月17 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得