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-datax-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'}

おすすめ

転載: blog.csdn.net/qq_30436011/article/details/120097181