Springboot中Controller层接收参数几种方式

 

处理request uri部分 @PathVariable
处理request header部分的注解  @RequestHeader  @CookieValue
处理request body部分的注解   @RequestParam  @RequestBody
处理 attribute 类型是注解  @SessionAttributes  @ModelAttribute
 


第一类:请求路径参数

1、 @PathVariable
获取路径参数。 url/{id}这种形式
2、@RequestParam
获取查询参数。即为url?name=lofge
例子:

    @GetMapping("/demo/{id}")
    @ResponseBody//返回基本数据类型
    public String demo(@PathVariable(name = "id") String id,
                     @RequestParam(name = "name1") String name2){
        System.out.println("id:"+id);
        System.out.println("name:"+name2);
        return "123";
    }


第二类:Body参数

@RequestBody注解通常是来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,
比如application/json或者application、xml等,一般用来处理application/json类型
通过@requestBody可以将请求体中JSON字符串绑定到相应的bean上,当然也可以绑定到对应的字符串上

//前端请求:
$.ajax({
    url:'/login',
    typr:"POST",
    data:{"userName":"admin","pwd":"admin"}
    content-type:"application/json charset=utf-8",
    success:function(data){
        alert("request Success!");
    }
})
//后端接收:
@PostMapping("/login")
public void login(@RequestBody String userName,@RequestBody String pwd){
        system.out.println(userName+""+pwd);
//如果有一个Person类,它有String userName,String pwd  则可以写成Person person
}

@requestBody可以用来处理content-type类型为application、x-www-form-urlcoded的内容,只不过不是很常用

@RequestBody  MultiValueMap<String,String>map

2.无注解

@PostMapping(path=“demo2”)
public void demo2(Person person){
    System.out.println(person.toString())
}

第三类
1、@RequestHeader
2、@CookieValue
例如:

   @GetMapping("/demo3")
    public void demo3(@RequestHeader(name = "myHeader") String myHeader,
                      @CookieValue(name = "myCookie") String myCookie){
        System.out.println("myHeader="+myHeader);
        System.out.println("myCookie:"+myCookie);
    }

也可以这样

  @GetMapping("/demo3")
    public void demo3(HttpServletRequest request){
        System.out.println(request.getHeader("myHeader"));
        for (Cookie cookie:request.getCookies()){
            System.out.println(cookie.getValue());
        }

转载自:https://blog.csdn.net/suki_rong/article/details/80445880

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值