[博学谷学习记录] 超强总结,用心分享|JAVAEE就业课-尊享无忧+SpringMVC(18WK)

文章详细介绍了SpringMVC中@Controller注解的@RequestMapping如何设置请求映射,以及如何处理GET和POST请求中的中文乱码问题。对于不同类型的参数传递,如普通参数、POJO、嵌套POJO、数组和集合,文章提供了详细的解决方案。此外,还讨论了@RequestBody用于接收JSON数据的情况,并提到了日期类型参数的转换和@DateTimeFormat注解的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求与响应

请求映射路径

@RequestMapping注解注解可以写在哪?有什么作用?

@RequestMapping注解
  • 名称:@RequestMapping

  • 类型:==方法注解 类注解==

  • 位置:SpringMVC控制器方法定义上方

  • 作用:设置当前控制器方法请求访问路径,如果设置在类上统一设置当前控制器方法请求访问路径前缀

请求参数

发送普通类型参数【重点】
问题导入

如何解决POST请求中文乱码问题?

2.1.1 请求方式
  • GET请求

  • POST请求

2.1.2 GET请求传递普通参数
  • 普通参数:url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数

- 问题:如果同学们传递的参数是中文试试,你们会发现接收到的参数出现了中文乱码问题。

- 原因:tomcat 8.5版本之后GET请求就不再出现中文乱码问题,但是我们使用的是tomcat7插件,所以会出现GET请求中文乱码问题。

- 解决:在pom.xml添加tomcat7插件处配置UTF-8字符集,解决GET请求中文乱码问题。

POST请求传递普通参数
  • 普通参数:form表单post请求传参,表单参数名与形参变量名相同,定义形参即可接收参数

问题:我们发现,POST请求传递的参数如果包含中文那么就会出现中文乱码问题,说明我们之前配置的tomcat插件uri路径编解码字符集无法解决POST请求中文乱码问题。那么如何解决呢?

POST请求中文乱码处理
在加载SpringMVC配置的配置类中指定字符过滤器。
五种类型参数传递
问题导入

当请求参数名与形参变量名不同,该如何接收请求参数?

五种类型参数介绍
  • 普通参数

  • POJO类型参数

  • 嵌套POJO类型参数

  • 数组类型参数

  • 集合类型参数

普通参数
  • 普通参数:当请求参数名与形参变量名不同,使用@RequestParam绑定参数关系

  • 名称:@RequestParam

  • 类型:形参注解

  • 位置:SpringMVC控制器方法形参定义前面

  • 作用:绑定请求参数与处理器方法形参间的关系

  • 参数:

  • required:是否为必传参数

  • defaultValue:参数默认值

POJO类型参数
  • POJO参数:请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数

==注意事项:请求参数key的名称要和POJO中属性的名称一致,否则无法封装。==

嵌套POJO类型参数
  • POJO对象中包含POJO对象

  • 嵌套POJO参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数

注意事项:请求参数key的名称要和POJO中属性的名称一致,否则无法封装。

数组类型参数
  • 数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型即可接收参数

集合类型参数
  • 集合保存普通参数:请求参数名与形参集合对象名相同且请求参数为多个,@RequestParam绑定参数关系

json数据参数传递
问题导入

问题:@EnableWebMvc注解和@ResponseBody注解有什么用?

json数据参数介绍
  • json普通数组(["","","",...])

  • json对象({key:value,key:value,...})

  • json对象数组([{key:value,...},{key:value,...}])

传递json普通数组
代码演示
  1. 添加json数据转换相关坐标

  1. 设置发送json数据(请求body中添加json数据)

  1. 开启自动转换json数据的支持

注意事项:

@EnableWebMvc注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换

  1. 在Controller中编写方法接收json参数

@EnableWebMvc注解介绍

  • 名称:@EnableWebMvc

  • 类型:==配置类注解==

  • 位置:SpringMVC配置类定义上方

  • 作用:开启SpringMVC多项辅助功能

@RequestBody注解介绍
  • 名称:@RequestBody

  • 类型:==形参注解==

  • 位置:SpringMVC控制器方法形参定义前面

  • 作用:将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次

传递json对象
  • POJO参数:json数据与形参对象属性名相同,定义POJO类型形参即可接收参数

传递json对象数组
  • POJO集合参数:json数组数据与集合泛型属性名相同,定义List类型形参即可接收参数

@RequestBody与@RequestParam区别
  • 区别@RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】@RequestBody用于接收json数据【application/json】

  • 应用后期开发中,发送json格式数据为主,@RequestBody应用较广如果发送非json格式数据,选用@RequestParam接收请求参数

日期类型参数传递

  • 日期类型数据基于系统不同格式也不尽相同2088-08-182088/08/1808/18/2088

  • 接收形参时,根据不同的日期格式设置不同的接收方式

@DateTimeFormat注解介绍
  • 名称:@DateTimeFormat

  • 类型:==形参注解==

  • 位置:SpringMVC控制器方法形参前面

  • 作用:设定日期时间型数据格式

  • 属性:pattern:指定日期时间格式字符串

工作原理
  • 其内部依赖Converter接口

  • 请求参数年龄数据(String→Integer)

  • json数据转对象(json → POJO)

  • 日期格式转换(String → Date)

注意事项

传递日期类型参数必须在配置类上使用@EnableWebMvc注解。其功能之一:根据类型匹配对应的类型转换器。

响应

问题导入

需要添加jackson-databind依赖以及在SpringMvcConfig配置类上添加@EnableWebMvc注解

声明:材料来源上课笔记,禁止转载,如有侵权通知即删。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值