乐途乐途
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
  • 学习路径
  • 第1章 SpringMVC概述与DispatcherServlet

    • 本章导读:Spring MVC概述与DispatcherServlet
    • Spring MVC 是什么
    • MVC 设计模式
    • 前端控制器模式
    • DispatcherServlet
    • 核心组件协作
  • 第2章 控制器与请求映射

    • 本章导读:控制器与请求映射
    • Controller
    • RestController
    • RequestMapping
    • GetMapping
    • PostMapping
    • PutMapping
    • DeleteMapping
    • PathVariable
    • RESTful
    • 请求映射原理
  • 第3章 请求参数获取与转换

    • 本章导读:请求参数获取与转换
    • RequestParam
    • RequestBody
    • RequestHeader
    • CookieValue
    • Model
    • ModelAttribute
    • 数据绑定原理
    • 数据校验
  • 第4章 响应数据与视图解析

    • 本章导读:响应数据与视图解析
    • ResponseBody
    • ResponseEntity
    • ModelAndView
    • ViewResolver
    • HttpMessageConverter
    • forward与redirect
  • 第5章 拦截器过滤器与跨域

    • 本章导读:拦截器、过滤器与跨域
    • HandlerInterceptor
    • WebMvcConfigurer
    • CrossOrigin
    • 登录验证实战
  • 第6章 文件上传与异常处理

    • 本章导读:文件上传与异常处理
    • MultipartFile
    • 文件下载
    • ExceptionHandler
    • ControllerAdvice
    • RestControllerAdvice
    • ResponseStatus
  • 第7章 高级特性与最佳实践

    • 本章导读:高级特性与最佳实践
    • SessionAttributes
    • SessionAttribute
    • RedirectAttributes
    • MockMvc测试
    • 国际化
    • 最佳实践
  • 第8章 扩展与异步机制

    • 本章导读:扩展与异步机制
    • 异步请求处理
    • 自定义参数解析器
    • 内容协商

"小崔,用户提交的表单数据为什么到了后端变成了null?"黄俪在联调时焦急地问。白歌走过来拍了拍小崔的肩膀:"数据绑定是Spring MVC最'魔法'的地方,但也是最容易踩坑的地方。理解绑定原理,比死记注解重要一百倍。"

——白歌,飞翔科技架构师

本章导读:请求参数获取与转换

本章定位

本章解决的核心问题:控制器方法如何从HTTP请求中准确、安全地提取并转换数据,以及如何对输入数据进行校验。

学习路线图

学习建议:务必从"数据绑定原理"开始,它是理解所有参数注解的根基。随后三条支线(简单参数、JSON体、表单对象)并行学习,汇聚到"数据校验",最后学习请求头、Cookie和Model的传递。

文件关系说明

文件一句话角色
数据绑定原理.md根基文件:Spring MVC如何将HTTP请求中的字符串数据转换为Java对象,WebDataBinder的工作机制与类型转换体系。
RequestParam.md简单参数:从URL查询字符串或表单中提取基本类型参数,如?name=xxx或id=123。
RequestBody.mdJSON参数:从请求体中读取JSON/XML数据并反序列化为Java对象,前后端分离项目的核心数据入口。
ModelAttribute.md表单对象:将表单字段自动绑定到复杂对象的属性上,传统表单提交场景的利器。
数据校验.md安全闸门:结合JSR-303/380(Bean Validation)对绑定后的数据进行规则校验,防止脏数据进入业务层。
RequestHeader.md头信息提取:从HTTP请求头中获取元数据,如User-Agent、Authorization等。
CookieValue.mdCookie提取:从请求Cookie中读取特定值,常用于会话标识或个性化配置。
Model.md数据载体:在控制器与视图之间传递数据的容器,理解它与请求参数的区别与协作关系。

知识图谱

图谱解读:所有参数获取的底层都依赖WebDataBinder和类型转换体系。@RequestParam处理简单键值对,@RequestBody借助HttpMessageConverter处理结构化数据,@ModelAttribute处理表单到对象的属性映射。数据绑定完成后,通过Validator进行校验。Model则是控制器向视图层传递处理结果的通道。

与下一章的衔接

本章学完后,你已经掌握了"请求数据如何进入方法"。下一章将解决"方法处理完数据后,如何返回给客户端"——你将学习@ResponseBody、ResponseEntity、ViewResolver等响应机制,理解HTTP消息转换器如何序列化数据、视图解析器如何渲染页面,以及转发与重定向的区别,完成"请求-处理-响应"闭环的最后一环。

下一页
RequestParam