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


互动话题

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

相关推荐
码行山野赴时序归途3 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
泡茶喝茶写代码3 小时前
量化数据进阶:多维实战篇(第 11 篇):历史涨跌停价:涨跌停序列与止损线测算
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
景熙55233 小时前
单体项目编写思路和落地形式
java·开发语言
Ivanqhz3 小时前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
mysqloffice4 小时前
数智时代,核心系统数据库架构往哪走
数据库·人工智能
l1t4 小时前
DeepSeek总结的 pgColumnar 1.0-alpha4 发布说明
数据库·postgresql
DBA_G4 小时前
南大通用GBase 8s数据库助力某农商行核心系统投产
数据库
Bs_MoneyMagnet4 小时前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
万物智能4 小时前
波形发生AD9833模块配置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
java
计算机毕设定制辅导-无忧学长4 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台