云计算百科
云计算领域专业知识百科平台

web前端基础到入门——10day

摘要

本文聚焦 SpringBootWeb 请求处理核心内容,先讲解 BS 架构与请求响应底层逻辑,再详细介绍 Postman 接口测试工具的使用,最后拆解各类请求参数的接收方式,搭配完整代码示例与测试步骤,帮助后端开发者快速掌握请求处理技巧,适配前后端分离开发模式。

一、前言:请求响应底层逻辑

在 SpringBootWeb 开发中,浏览器与后端服务器遵循 HTTP 协议进行交互,采用 BS(Browser/Server)架构,即浏览器/服务器模式,客户端仅需浏览器,业务逻辑与数据均存储在服务端。

核心流程:

  • 浏览器发起请求(携带请求行、请求头)
  • 内置 Tomcat 服务器解析请求数据
  • 核心控制器 DispatcherServlet 接收请求并转发给对应 Controller
  • Controller 处理请求后,通过 HttpServletResponse 对象返回响应数据
  • 二、Postman 接口测试工具(前后端分离必备)

    2.1 工具介绍

    Postman 是一款功能强大的 HTTP 请求调试工具,可模拟浏览器发起 GET、POST 等各类请求,支持携带请求参数、请求头,完美解决前后端分离开发中无前端页面测试接口的痛点,具有简单、实用、界面美观的特点。

    2.2 安装与基础使用

  • 安装:双击安装包即可完成安装,无需额外配置,新版本可选择不升级。
  • 基础操作:登录账号后创建工作空间,新建请求,设置请求方式、URL、参数,发送请求并查看响应结果,可保存请求信息方便后续复用。
  • 三、各类请求参数接收详解

    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 后端

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » web前端基础到入门——10day
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!