介绍
新手程序员一枚,渴望成为大神,来点关注来点赞,给我介绍几个大神也行,球球了。
主要记录自己的学习过程,将之前的笔记进行整理并分享一下,有错误请指出,谢谢各位大佬爷们的观看。
下面开始分享我的笔记
概述
请求
接口测试工具
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