请求响应

yang-jc / 2023-07-20 / 原文

一、请求响应

1.请求(HttpServletRequest):获取请求数据。

2.响应(HttoServletResponse):设置相应数据。

3.BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。(维护方便,体验一般)

4.CS架构:Client/Server,客户端/服务器架构模式。(开发、维护麻烦,体验不错)

二、请求

1.postman

是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。

作用:常用于进行接口测试

2.简单参数

(1)原始方式:在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。

image-20230720094752899

(2)SpringBoot方式:参数名与形参变量名相同,定义形参即可接收参数。

image-20230720094908561

  • 如果方法形参名与请求参数名不匹配,可以使用@RequestParam完成映射

image-20230720095507953

  • @RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false。

3.实体参数

(1)简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可。

(2)复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。

4.数组集合参数

(1)数组参数:请求参数名与形参数组名相同且请求参数为多个,定义数组类型形参即可接收参数。

(2)集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequsetParam绑定参数关系。

5.日期参数

使用@DateTimeFormat注解完成日期参数格式转换。

image-20230720102140327

6。Json参数

JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识。

7.路径参数

通过请求URL直接传递参数,使用{...}来表示该路径参数,需要使用@PathVariable获取路径参数。

三、响应

1.@ResponseBody

(1)类型:方法注解、类注解;

(2)位置:Controller方法上/类上;

(3)作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式响应;

(4)说明:@RestController = @Controller + @ResponseBody

2.统一响应结果

image-20230720113408510