这里写目录标题
- 请求响应
- 概述
- 请求
- postman
- 各种参数的封装以及接收
- 简单参数
- 原始方式
- springboot方式
- 映射解决参数不匹配
- 小结
- 实体参数
- 简单的实体参数
- 复杂的实体参数
- 注意点
- 数组集合参数
- 数组
- 集合
- 总结
- 日期参数
- json参数
- 模拟发送注意点
- 服务端注意点
- 路径参数
- 各个参数总结
- 响应
- 注解
- 统一响应格式
- 原始响应格式
- 统一格式
- 介绍
- 具体代码
请求响应
概述
浏览器发出请求数据——》web服务器里的dispatcherservlet核心控制器——》各个controller,之后原路返回到浏览器,以此完成一次数据的请求响应
其中核心控制器里有httpServletRequest(请求对象)、httpServletResponse(响应对象),两个对象有各自的功能
这种浏览器服务器架构,是bs架构
请求
postman
各种参数的封装以及接收
简单参数
原始方式
springboot方式
只需要参数名和请求参数保持一致即可,这里会完成自动类型转换
映射解决参数不匹配
当springboot里的参数名与前端发送的请求参数名不一致时,可以对在参数前加一个注解,并加上括号,括号内容是请求数据参数名,这就是利用映射原理
小结
实体参数
简单的实体参数
这是模拟发送的客户端数据
这是对于实体参数,也就是具体对象作为参数时的springboot程序
之所以辨认出发送的请求是给第二个代码块 主要是由客户端发送时所指定的URI决定,也就是上图选中的部分,这里注意,springboot代码里定义的方法名最好与URI(就是注解括号里的资源名称)保持一致
URL 是指资源路径
URI 是指资源名称
复杂的实体参数
当实体对象里面有个成员变量 该变量是当前包下另一个封装的对象(如下两张图)时,前端发送请求数据参数时,应像上图那样,用点来表明层级关系,注意这个时候address对象是User类的一个成员变量
注意要为address变量写get、set、tostring方法
注意点
这里新建了一个包(pojo),专门用来存放controller里所用到的具体对象的类
当然,具体的spring boot程序仍旧在controller中定义的RequestController中进行编写
数组集合参数
数组
客户端传入请求参数时,直接同一个键对应不同的值,多次定义同一个键即可
springboot程序里参数是新定义的数组,输出时使用了arrays的tostring方法,数组名要与请求参数的名称保持一致
集合
注意当数组做参数时,不仅要名称保持一致,而且要用@RequestParam注解来绑定参数关系,如下图
总结
日期参数
这里参数用日期类(API),类对应的对象名要与前端传递过来的请求参数名一致,并且要用@DateTimeFormat注解加小括号,小括号里对日期进行规定,最后直接输出日期对象名
json参数
模拟发送注意点
注意只有POST类型的请求参数才能发送json类型参数,因为json参数是存放在请求体里面的,这里要选择raw,并在右边倒三角选择json
注意json格式,都是键值对,并且键要用双引号引起来
服务端注意点
接收json数据要使用一个实体类,也就是上图所说的pojo类型,json的数据键名要与对象的属性名相同,同时要用@RequestBody注解标识
路径参数
通过设置路径 发送参数 服务端得到参数,注意id和 name 都是变量,要用花括号括起来,参数前要用到注解@PathVariable
各个参数总结
响应
注解
响应数据,在类或者方法上加一个注解,该注解的作用是将方法返回值直接响应回去前端
统一响应格式
原始响应格式
统一格式
介绍
具体代码
上面四图表示,用统一格式优化之后的代码块,(补充:这些代码块就是所谓的功能接口),功能接口被优化
优化步骤,1.在pojo类中粘贴一个Result类
2.将方法的返回值修改为Result类型,return后面跟上Result实例化对象,由于该类提供了静态方法,所以可以直接通过类名访问静态方法,传入参数