1.基础知识
2.请求
1.简单参数
1.原始方式
在原始的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";
}
在postman中发送参数如图:
2.springboot方式(简单参数:参数名与形参变量名相同,定义形参即可接收参数)
@RequestMapping("/simpleParam")
public String simpleParam(String name , Integer age){
System.out.println(name+" : "+age);
return "OK";
}
在postman中发送参数如图:
get方式
post方式
3.springboot方式(简单参数:如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。)
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String username , Integer age){
System.out.println(username + " : " + age);
return "OK";
}
在postman中发送参数如图:
ps:@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。 如果该参数是可选的,可以将required属性设置为false。
2.实体参数
1.简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可
@RequestMapping("/simplePojo")
public String simplePojo(User user){
System.out.println(user);
return "OK";
}
在postman中发送参数如图:
2.复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。
@RequestMapping("/complexPojo")
public String complexPojo(User user){
System.out.println(user);
return "OK";
}
在postman中发送参数如图:
3.数组集合参数
1.数组参数:请求参数名与形参数组名称相同且请求 参数为多个,定义数组类型形参即可接收参数
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
在postman中发送参数如图:
2.集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "OK";
}
在postman中发送参数如图:
4.日期参数
日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
在postman中发送参数如图:
5.JSON参数
JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
System.out.println(user);
return "OK";
}
在postman中发送参数如图:
6.路径参数
路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数
1.可变路径在最后
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable Integer id){
System.out.println(id);
return "OK";
}
在postman中发送参数如图:
2.可变路径在中间
@RequestMapping("/path/{id}/{name}")
public String pathParam2(@PathVariable Integer id, @PathVariable String name){
System.out.println(id+ " : " +name);
return "OK";
}
在postman中发送参数如图:
3.响应
@ResponseBody
类型:方法注解、类注解
位置:Controller方法上/类上
作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为JSON格式响应
说明:@RestController = @Controller + @ResponseBody ;
ps:@ResponseBody是将后端的对象自动转换为json格式返回给前端,而@ResquestBody是将前端的参数自动封装成对象供后端使用
统一响应结果: