Spring Boot
特点:一种java开发框架,用来简化Spring 应用程序的初始设置和开发过程
请求响应
在学习Spring boot之前应了解Http协议的内容,了解请求数据格式与响应格式
其中请求数据格式常用分为四个:___
响应状态大体分为五类,常用的有:
- 200 表示成功接受请求并响应
- 400与404 表示无法找到对应网址,可能原因为接受参数类型或参数名出错,或者未加对应注释;也可能是因为网址名写错了
- 500 代表服务端代码出错了,请立即打开调试功能进行代码处理
请求
请求是客户端向服务器发送的一次HTTP请求,客户端可以是浏览器、移动应用或其他发送HTTP请求的客户端程序。请求包含了客户端想要执行的操作(如获取资源、提交表单等)以及相关的请求参数、请求头等信息。
请求方法:常见的HTTP请求方法包括get(查),post(增),put(改),delete(删)等,每种方法对应着不同的操作。
请求体:请求还可以包含请求体,用于传递额外的数据
请求体分为多种类型,如简单参数,对象,数组集合,日期参数,json形式参数,路径参数
http://localhost:8080/ArrayParam?name=tom&age=18
name=tom&age=18就是一个请求体,而JSON形式的参数由于长度限制,不适合使用GET方法接收
接收请求:对于不同请求体类型,所接受的方法类型也有所不同
-
普通数据类型:定义 方法形参,请求参数名与形参变量名一致(如果接受参数过多,可以构建一个类来进行接收)用类来接受请求中的参数时,如果请求中没有对应参数数据,类中没有对应的属性值为null
-
集合:使用
@RequestParam
注解来接收集合的请求信息(集合名要和参数名一样) -
日期参数:与集合同理
-
JSON数据:大多数post与put请求都是使用JSON格式封装,与接受普通数据类型唯一不同的一点就是需要在参数类型前添加@RequestBody注解,注意:如果只有一个像Long类型这样的包装类变量,你可能会直接使用Long接收,但实际上接收到的JSON数据是一个对象,而不是一个简单的值。所以不能使用包装类来接受一个JSON对象,可以将他封装为一个对象,尽管这个类中只有一个属性
-
路径参数:使用@PathVariable接收
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Set;
@RestController
public class MyController {
// 普通数据类型
@GetMapping("/example1")
public String handleExample1(@RequestParam String param1, @RequestParam Integer param2) {
System.out.println("param1: " + param1);
System.out.println("param2: " + param2);
return "Example1 handled successfully";
}
// 集合
@GetMapping("/example2")
public String handleExample2(@RequestParam List<String> names, @RequestParam Set<String> ages) {
System.out.println("names: " + names);
System.out.println("ages: " + ages);
return "Example2 handled successfully";
}
// 日期参数
@GetMapping("/example3")
public String handleExample3(@RequestParam Date date, @RequestParam LocalDate localDate) {
System.out.println("date: " + date);
System.out.println("localDate: " + localDate);
return "Example3 handled successfully";
}
// JSON数据
@PostMapping("/example4")
public String handleExample4(@RequestBody MyObject myObject) {
System.out.println("myObject: " + myObject);
return "Example4 handled successfully";
}
// 路径参数
@GetMapping("/example5/{id}")
public String handleExample5(@PathVariable Long id) {
System.out.println("id: " + id);
return "Example5 handled successfully";
}
}
class MyObject {
private String name;
private Integer age;
// Getter and Setter
// ...
@Override
public String toString() {
return "MyObject{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
响应
服务器接收到请求后,会进行相应的处理,并生成一个响应(Response)返回给客户端。响应包含了服务器对请求的处理结果,以及相关的响应状态码、响应头等信息。
常见的HTTP响应状态码包括200(成功)、404(未找到)、500(服务器内部错误)等,每个状态码都有特定的含义。响应还可以包含响应体,用于返回请求的结果数据,如HTML页面、JSON数据等。
统一的响应结果:返回Result对象,经过@ResponseBody处理响应给客服端JSON格式数据(前端拿到JSON格式数据)
总结
请求和响应是Web开发中实现客户端与服务器之间通信的基础。通过请求和响应,客户端可以向服务器发送请求并获取相应的结果,实现数据的传输和交互。在开发过程中,我们需要理解和处理请求和响应的相关信息,以实现所需的功能和交互效果。