摘要
本文聚焦 SpringBootWeb 请求处理核心内容,先讲解 BS 架构与请求响应底层逻辑,再详细介绍 Postman 接口测试工具的使用,最后拆解各类请求参数的接收方式,搭配完整代码示例与测试步骤,帮助后端开发者快速掌握请求处理技巧,适配前后端分离开发模式。
一、前言:请求响应底层逻辑
在 SpringBootWeb 开发中,浏览器与后端服务器遵循 HTTP 协议进行交互,采用 BS(Browser/Server)架构,即浏览器/服务器模式,客户端仅需浏览器,业务逻辑与数据均存储在服务端。
核心流程:
二、Postman 接口测试工具(前后端分离必备)
2.1 工具介绍
Postman 是一款功能强大的 HTTP 请求调试工具,可模拟浏览器发起 GET、POST 等各类请求,支持携带请求参数、请求头,完美解决前后端分离开发中无前端页面测试接口的痛点,具有简单、实用、界面美观的特点。
2.2 安装与基础使用
三、各类请求参数接收详解
3.1 简单参数
简单参数即普通请求数据,SpringBoot 提供两种接收方式,推荐使用 SpringBoot 原生方式。
3.1.1 原始方式(了解即可)
通过 HttpServletRequest 对象获取参数,需手动进行类型转换,代码繁琐,实际开发中很少使用。
@RestController
public class RequestController {
@RequestMapping("/simpleParam")
public String simpleParam(HttpServletRequest request){
String name = request.getParameter("name");
String ageStr = request.getParameter("age");
int age = Integer.parseInt(ageStr);
System.out.println(name + " : " + age);
return "OK";
}
}
3.1.2 SpringBoot 方式(推荐)
请求参数名与 Controller 方法形参名一致时,直接定义同名形参即可接收,支持 GET、POST 请求。若参数名不一致,需使用 @RequestParam 注解映射。
@RestController
public class RequestController {
// 参数名与形参名一致
@RequestMapping("/simpleParam")
public String simpleParam(String name, Integer age){
System.out.println(name + " : " + age);
return "OK";
}
// 参数名不一致,使用@RequestParam
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam("name") String username, Integer age){
System.out.println(username + " : " + age);
return "OK";
}
}
3.2 实体参数
当请求参数较多时,可将参数封装到实体类中,核心规则:请求参数名与实体类属性名相同。
注意:@RequestParam 的 required 属性默认为 true,即参数必须传递,若为可选参数,需设置 required = false。
3.2.1 简单实体对象
定义实体类,直接在 Controller 方法中以实体类为形参,SpringBoot 自动封装参数。
// 实体类
public class User {
private String name;
private Integer age;
// 省略getter、setter、toString方法
}
// Controller
@RestController
public class RequestController {
@RequestMapping("/simplePojo")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
}
3.2.2 复杂实体对象
实体类中包含其他实体类属性时,按对象层次结构传递参数即可,SpringBoot 自动完成嵌套封装。
// 地址实体类
public class Address {
private String province;
private String city;
// 省略getter、setter、toString方法
}
// 用户实体类(包含地址属性)
public class User {
private String name;
private Integer age;
private Address address;
// 省略getter、setter、toString方法
}
// Controller
@RestController
public class RequestController {
@RequestMapping("/complexPojo")
public String complexPojo(User user){
System.out.println(user);
return "OK";
}
}
3.3 数组与集合参数
适用于前端多选场景,可通过数组或集合接收多个同名参数。
3.3.1 数组接收
定义数组类型形参,请求参数名与数组名一致即可。
@RestController
public class RequestController {
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
}
3.3.2 集合接收
需配合 @RequestParam 注解,将多个参数绑定到集合中。
@RestController
public class RequestController {
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "OK";
}
}
3.4 日期参数
日期格式多样,需通过 @DateTimeFormat 注解指定格式,使用 LocalDateTime 或 Date 类型接收。
@RestController
public class RequestController {
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
}
3.5 JSON 参数
@RestController
public class RequestController {
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
System.out.println(user);
return "OK";
}
}
前后端交互常用 JSON 格式,需使用 @RequestBody 注解,将 JSON 数据映射到实体类对象中,JSON 键名与实体类属性名一致。
3.6 路径参数
直接在 URL 中传递参数,使用 {…} 标识路径参数,配合 @PathVariable 注解获取。
@RestController
public class RequestController {
// 单个路径参数
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable Integer id){
System.out.println(id);
return "OK";
}
// 多个路径参数
@RequestMapping("/path/{id}/{name}")
public String pathParam2(@PathVariable Integer id, @PathVariable String name){
System.out.println(id + " : " + name);
return "OK";
}
}
四、总结
本文详细讲解了 SpringBootWeb 中各类请求参数的接收方式,核心要点:简单参数用形参接收、实体参数用 POJO 封装、数组集合需注意注解使用、JSON 参数依赖 @RequestBody、路径参数需用 @PathVariable。结合 Postman 可快速完成接口测试,为后续业务开发打下基础。
下期预告:讲解响应处理与分层解耦,实现规范的接口响应与代码架构优化!
标签:#SpringBoot #SpringBootWeb #请求参数 #Postman #Java 后端
网硕互联帮助中心


评论前必须登录!
注册