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

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

文章目录


前言

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


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

 

请求响应:

  • 请求(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 
  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值