PostMan使用,访问路径@RequestMapping

PostaMan

访问路径

使用postman软件可以很方便对网页进行post和get操作

请求映射的路径,如果两个controller的请求路径相同(如下图),这时就会出现错误,可以在controller类上使用@RequestMapping来解决这个问题

PostMan使用,访问路径@RequestMapping_第1张图片

 PostMan使用,访问路径@RequestMapping_第2张图片

 解决办法:为不同的模块设置不同的模块名作为请求路径前置

PostMan使用,访问路径@RequestMapping_第3张图片

 PostMan使用,访问路径@RequestMapping_第4张图片

 总结:@RequestMapping可以放在类上,也可以放在方法上,用来设置不同的请求路径

请求参数

接收到前端的请求后,如何接受页面传递的参数

请求参数的传递与接收是和请求方式有关系的,目前比较常见的两种请求方式为:

get

post

针对get和post请求,后端的接受方式不同

get请求

发送单个参数和多个参数

PostMan使用,访问路径@RequestMapping_第5张图片

PostMan使用,访问路径@RequestMapping_第6张图片 

以及中文参数乱码问题

在get请求方式中,如果参数出现中文,后端会出现乱码问题,是因为idea中tomcat7.5插件的版本问题,在tomcat8.5之后,中文乱码的问题已被解决,但是idea中的tomcat版本目前只有7.5

所以需要更改pom.xml文件

PostMan使用,访问路径@RequestMapping_第7张图片

 解决中文乱码问题

PostMan使用,访问路径@RequestMapping_第8张图片

Post发送参数 

PostMan使用,访问路径@RequestMapping_第9张图片

 

和get发送参数一样,参数不做改变,只是发送参数的方式不同

过滤器

但是也存在中文乱码问题,post使用过滤器解决

CharacterEncodingFilter是在spring-web包中,所以用之前需要导入对应的jar包。

PostMan使用,访问路径@RequestMapping_第10张图片

PostMan使用,访问路径@RequestMapping_第11张图片 

五种类型参数的传递

普通参数

POJO类型参数

嵌套POJO类型参数

数组类型参数

集合类型参数

1.普通参数:url地址传参,地址参数名与形参变量名相同,定义形参即接受参数

PostMan使用,访问路径@RequestMapping_第12张图片

如果形参和地址参数名不同

使用@RequestParam注解

在地址栏输入的参数名为name,但是方法中形参的名为username

@RequestParam绑定请求参数和形参之间的关系

把name和username绑定

PostMan使用,访问路径@RequestMapping_第13张图片

2.POJO数据类型

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

user类作为POJO类,发送参数和接收参数

PostMan使用,访问路径@RequestMapping_第14张图片

PostMan使用,访问路径@RequestMapping_第15张图片 

 

注意,请求参数与形参中的属性对应即可完成参数传递,pojoParam中的属性为name和age,请求参数也是name和age。

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

3.嵌套POJO类型参数

在一个pojo对象中嵌套了其他的pojo对象

PostMan使用,访问路径@RequestMapping_第16张图片

PostMan使用,访问路径@RequestMapping_第17张图片

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

PostMan使用,访问路径@RequestMapping_第18张图片

 

 重写两个类的toString()方法,这样输出user对象的时候,可以看到参数有没有传递进去

PostMan使用,访问路径@RequestMapping_第19张图片

4.数组类型参数

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

PostMan使用,访问路径@RequestMapping_第20张图片

PostMan使用,访问路径@RequestMapping_第21张图片 

5.集合类型参数

数组可以接收多个值,集合也可以完成这个功能

SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端的数 据封装到对象中,但是List是一个接口无法创建对象

使用@RequestParam

PostMan使用,访问路径@RequestMapping_第22张图片

PostMan使用,访问路径@RequestMapping_第23张图片

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

@RequestParam 

PostMan使用,访问路径@RequestMapping_第24张图片

json数据传递参数

pojo类型参数里面最广泛使用的是json数据,前端发送了一个json数据,后端应该怎么接收

常见的json数据类型有以下三种

json普通数组(["value1","value2","value3",...])

json对象({key1:value1,key2:value2,...})

json对象数组([{key1:value1,...},{key2:value2,...}])

接收json数据步骤

1.添加jackson依赖

PostMan使用,访问路径@RequestMapping_第25张图片

2.postman发送json数据

PostMan使用,访问路径@RequestMapping_第26张图片

 3.配置类文件中开启SpringMVC的注解支持,这里面包含了将json转换成对象的功能

PostMan使用,访问路径@RequestMapping_第27张图片

4.参数前添加@RequestBody 

PostMan使用,访问路径@RequestMapping_第28张图片

 注意和接受集合类型数据不同的是,此处使用@RequestBody注解,而集合使用的是@RequestParam注解

5.具体实现 

PostMan使用,访问路径@RequestMapping_第29张图片

PostMan使用,访问路径@RequestMapping_第30张图片

此时address对象的内容为空

在postman中输入

PostMan使用,访问路径@RequestMapping_第31张图片 

同时导入多个json对象

这时就要使用数组了,简称为json对象数组

PostMan使用,访问路径@RequestMapping_第32张图片形参的写法

PostMan使用,访问路径@RequestMapping_第33张图片

 注解总结:

PostMan使用,访问路径@RequestMapping_第34张图片

 PostMan使用,访问路径@RequestMapping_第35张图片

日期类型参数传递

PostMan使用,访问路径@RequestMapping_第36张图片

 1.编写方法接受日期类型

PostMan使用,访问路径@RequestMapping_第37张图片

2.发送请求

PostMan使用,访问路径@RequestMapping_第38张图片

 

 

不同的日期格式,SpringMVC需要不同的处理

SpringMVC默认支持的字符串转日期的格式为yyyy/MM/dd,如果传递的参数不符合默认格式,SpringMVC就无法进行格式转换,需要使用@DateTimeFormat

PostMan使用,访问路径@RequestMapping_第39张图片

PostMan使用,访问路径@RequestMapping_第40张图片

 

 有些日期中会带有具体时间,这时也需要使用@DateTimeFormat

PostMan使用,访问路径@RequestMapping_第41张图片

PostMan使用,访问路径@RequestMapping_第42张图片 注意形参的书写格式必须和请求参数的格式一致

总结 

PostMan使用,访问路径@RequestMapping_第43张图片

 参数传递的原理

前端传递字符串,后端使用日期Date接收

前端传递JSON数据,后端使用对象接收

后台需要的数据类型有很多种

前端传递字符串,后端使用Integer接收

在数据的传递过程中存在很多类型的转换

SpringMVC使用converter接口来实现以上多种类型的转换

PostMan使用,访问路径@RequestMapping_第44张图片 

 

你可能感兴趣的:(postman,json,测试工具)