Spring-关于请求body与请求param以及后端request获取
目录
Spring 关于请求body与请求param以及后端request获取
一、前端:
body数据放在请求体内
param参数是放在url上
二、后端:
1、获取路径参数
@GetMapping("/orders/{id}")
public String getOrder(@PathVariable(value = "id") Integer id){
String result = "id:"+id;
return result;
}
2、获取body数据
1、@RequestBody注解的实体
2、直接使用String接收body的json串
3、Post请求也可以直接与对象类绑定,但需要参数名一致,不支持json格式,只支持
form-data
和
x-www.form-urlencoded
格式(暂不做测试)
@PostMapping("/order/add")
public String addOrder(Order order){
String result = order.toString();
return result;
}
@RequestBody注解注意
1 这个注解用post方法请求
2 请求数据放在body体里
3 接收是实体对象或Map对象时必须配置Content-Type: application/json并且传的是json格式,如果接收是string类型,就没有这个必须
4 @RequestBody是做反序列化处理的@ResponseBody是做序列化处理的
3、获取param参数
1、@RequestParam注解获取 注意value属性对应请求属性名,不设置默认和参数名一样
2、使用request获取
String name=request.getParameter(“name”); //获取一个参数
Map map=request.getParameterMap();//获取所有参数
3、将请求参数映射到一个对象上
请求能映射到的原因是实体类Test 有name属性,浏览器请求时参数key与属性名一一对应
@RequestMapping(value = "/getParam")
public @ResponseBody Animal getParam(Test test){
return test;
}
请求地址为http://127.0.0.1:8080/getParam?name=abc
返回:{‘name’: ‘abc’}