首页 > 其他分享 >Spring Boot Web开发实践:请求与响应参数的使用方法

Spring Boot Web开发实践:请求与响应参数的使用方法

时间:2024-08-28 13:55:07浏览次数:7  
标签:Web String Spring Boot private name 参数 public 请求

主要介绍了请求响应的简单参数、实体参数、数组集合参数、日期参数、路径参数等各自的使用方法!!!

文章目录

前言

Postman

简单参数

原始方式

 SpringBoot方式

实体参数

数组集合参数

日期参数

 路径参数

总结


前言

主要介绍了请求响应的简单参数、实体参数、数组集合参数、日期参数、路径参数等各自的使用方法!!!


提示:以下是本篇文章正文内容,下面案例可供参考

 

请求响应:

  • 请求(HttpServletRequest):获取请求数据
  • 响应(HttpServletResponse):设置响应数据
  • BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。(维护方便、体验一般)
  • CS架构:Client/Server,客户端/服务器架构模式。(开发、维护麻烦,体验不错)

前后端分离

当前最为主流的开发模式:前后端分离

Postman

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

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

官网:Postman API Platform

 

 

简单参数

原始方式

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

@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";
}

 SpringBoot方式

简单参数:参数名与形参变量名相同,定义形参即可接收参数。

@RequestMapping("/simpleParam")
public String simpleParam(String name , Integer age){
    System.out.println(name+"  :  "+age);    
    return "OK";
}

 

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

@RequestMapping("/simpleParam")
    public String simpleParam(@RequestParam(name= "name") String username,@RequestParam(name = "age") Integer age) {
        System.out.println(username+" : "+age);
        return "OK";
    }

 注意事项:

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

实体参数

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


public class User {
    private String name;
    private int age;
}
    @RequestMapping("/simplePojo")
    public String simplePojo(User user){
        System.out.println(user);
        return "OK";
    }

 

 

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

public class User {
    private String name;
    private int age;
    private Address address;
}
public class Address {
    private String province;
    private String city;
}
    @RequestMapping("/complexPojo")
    public String complexPojo(User user){
        System.out.println("user");
        return "OK";
    }

 规则:请求参数名与形参对象属性名相同,即可直接通过POJO接收

数组集合参数

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

    @RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }

 集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
    System.out.println(hobby);
    return "OK";
}

 数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装

集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系

日期参数

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

@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
    System.out.println(updateTime);
    return "OK";
}

 

 JSON 参数

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

public class Address {
    private String province;
    private String city;
}
public class User {
    private String name;
    private int age;
    private Address address;
}
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
    System.out.println(user);
    return "OK";
}

 

 路径参数

路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数

@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";
}

 

 


总结

简单参数:

  • 定义方法形参,请求参数名与形参变量名一致。
  • 如果不一致,通过@RequestParam手动映射。

实体参数:

  • 请求参数名,与实体对象的属性名一致,会自动接收封装 

数组集合参数:

  • 数组:请求参数名与数组名一致,直接封装
  • 集合:请求参数名与集合名一致,@RequestParam绑定关系 

日期参数:

  • @DateTimeFormat 

JSON参数:

  • @RequestBody 

路径参数:

  • @PathVariable 

标签:Web,String,Spring,Boot,private,name,参数,public,请求
From: https://blog.csdn.net/m0_63267251/article/details/141611856

相关文章