Bootstrap

请求响应~请求

介绍

        新手程序员一枚,渴望成为大神,来点关注来点赞,给我介绍几个大神也行,球球了。


        主要记录自己的学习过程,将之前的笔记进行整理并分享一下,有错误请指出,谢谢各位大佬爷们的观看。

        下面开始分享我的笔记


概述

请求

接口测试工具

Postman

网址 https://www.postman.com/

功能
  • 网页调试

  • 发送网页HTTP请求

  • Chrome插件

安装
  • 双击

  • 需要注册

使用

简单参数

  • 原始方式

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

    • 新建类RequestController

package com.testpeople.controller;


//测试请求参数接收

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class RequestController {

    //原始方式
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request){
        //获取请求参数
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        int ageInt = Integer.parseInt(age);
        System.out.println("name:"+name+",age"+ageInt);
        return "ok";

    }



}    
  • 通过Postman模拟请求

  • 后端显示

  • SpringBoot方式

    • 简单参数:参数名与形式参数名相同,无需自动转化数据类型

    • //springboot方式
      @RequestMapping("/simpleParam")
      public String simpleParam(String name,Integer age){
          System.out.println("name:"+name+",age"+age);
          return "ok";
      
      }
    • 注意:如果参数名称对应不上可以使用下面的方式

    • //使用@RequestParam完成映射
      
      //参数不对应时
      @RequestMapping("/simpleParam")
      public String simpleParam(@RequestParam(name = "name") String userName, Integer age){
          System.out.println("name:"+userName+",age:"+age);
          return "ok";
      
      }

//参数不对应时
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name",required = false) String userName, Integer age){
    System.out.println("name:"+userName+",age:"+age);
    return "ok";

}
  • 效果

  • get类型

  • post类型

实体参数

  • 简单实体对象

      请求参数名与形参对象属性名相同,定义POJO接受。

      将参数封装到实体类当中

    • postman配置

  • 后端

    • 实体类

package com.testpeople.pojo;

public class User {

    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  • 接受请求方法
//实体参数
@RequestMapping("/simplePojo")
public String simplePojo(User user){
    System.out.println(user);
    return "ok";
}
  • 复杂实体参数

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

  • 后端

    • 实体类

package com.testpeople.pojo;

public class Address {
    private String province;
    private String city;

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    @Override
    public String toString() {
        return "Address{" +
                "province='" + province + '\'' +
                ", city='" + city + '\'' +
                '}';
    }
}
  • 接收请求方法

//复杂实体参数
@RequestMapping("/complexPojo")
public int complexPojo(User user){
    System.out.println(user);
    return 0;
}
  • postman

数组集合参数

  • 请求参数名与形式参数名称相同且请求参数为多个,定义数据类型形参即可接收参数。

使用场景
  • 复选框组件时

数组接收
  • postman配置

  • 后端

//数组参数
//接收请求方法
@RequestMapping("/arrayParam")
public String arrayParam(String [] hobby){
    System.out.println(Arrays.toString(hobby));
    return "ok";
}

集合接收
  • postman配置

  • 后端

//使用集合接收
//默认使用数组接收,如果改成list,需要在形参名前添加@RequestParam

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

 

日期参数

  • 使用@DataTimeFormat注解完成日期参数格式转换

  • postman配置

  • 后端

//时间参数接收
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
    System.out.println(updateTime.toString());
    return "ok";
}


//注意日期的格式
  • 效果

Json参数

  • json数据键名与形参对象属性名相同,定义Pojo类型形参即可接收参数,需要使用@RequestBody注解标识。

  • postman配置

    • Json类型的参数需要配置到Body中

  • 后端

    • 实体类

package com.testpeople.pojo;

public class Position {
    private String work;
    private String sleep;

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }

    public String getSleep() {
        return sleep;
    }

    public void setSleep(String sleep) {
        this.sleep = sleep;
    }

    @Override
    public String toString() {
        return "Position{" +
                "work='" + work + '\'' +
                ", sleep='" + sleep + '\'' +
                '}';
    }
}
package com.testpeople.pojo;

import java.util.Arrays;

public class WorkMan {

    private String name;
    private Integer age;
    private String [] learn;
    private Position position;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String[] getLearn() {
        return learn;
    }

    public void setLearn(String[] learn) {
        this.learn = learn;
    }

    public Position getPosition() {
        return position;
    }

    public void setPosition(Position position) {
        this.position = position;
    }

    @Override
    public String toString() {
        return "WorkMan{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", learn=" + Arrays.toString(learn) +
                ", position=" + position +
                '}';
    }
}
  • 接收请求方法

//json类型参数接收
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody WorkMan man){
    System.out.println(man.toString());
    return "ok";
}

//注意参数前需要添加注解
  • 效果

路径参数

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

  • postman配置

  • 后端

//路径参数接收
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable Integer id){
    System.out.println(id);
    return "ok";
}

//参数需要添加注解@PathVariable
多个路径参数
  • postman配置

  • 后端

//多个路径参数
@RequestMapping("/path/{id}/{name}")
public String pathParam(@PathVariable Integer id,@PathVariable String name){
    System.out.println(id+": "+name);
    return "ok";
}
//注意每个参数都要写注解
  • 效果

总结


以上是学习的第七弹笔记,也是后端开始的第三弹笔记,感兴趣的关注一手,后面会慢慢更新笔记。

项目位置!!!!!

https://gitee.com/zsjnew/admin_web_project.git

;