springboot中常见的几个参数注解

springboot中常见的几个参数注解

  1. @PathVariable:路径变量
  2. @RequestHeader:获取请求头
  3. @RequestParam:获取请求参数
  4. @CookieValue:获取cookie值
  5. @RequestBody:获取请求体
  6. @RequestAttribute:获取request域属性

路径变量:路径变量使用@PathVariable注解,@PathVariable注解可以一个一个参数来接收,也可以直接使用一个map来进行接收

@RestController
public class ParameterTextController {
    @GetMapping("/car/{id}/owner/{username}")
    public Map getCar(@PathVariable("id") Integer id,
                      @PathVariable("username") String name,
                      @PathVariable Map pv){
        Map<String, Object> map = new HashMap<>();
        map.put("id",id);
        map.put("owner",name);
        map.put("pv",pv);
        return map;
    }
}

在这里插入图片描述

获取请求头:获取请求头使用@RequestHeander注解,请求头也可以使用map来一次性获取全部参数

@RestController
public class ParameterTextController {
    @GetMapping("header")
    public Map getCar(@RequestHeader("User-Agent") String ua,
                      @RequestHeader Map headers){
        Map<String, Object> map = new HashMap<>();
        map.put("ua",ua);
        map.put("headers",headers);
        return map;
    }
}

在这里插入图片描述

获取请求参数:获取请求参数使用@RequestParam注解,请求参数也可以使用map来统一获取。

@RestController
public class ParameterTextController {
    @GetMapping("/param")
    public Map getCar(@RequestParam("id") Integer id,
                      @RequestParam("name") String name,
                      @RequestParam Map rmp){
        Map<String, Object> map = new HashMap<>();
        map.put("id",id);
        map.put("name",name);
        map.put("rmp",rmp);
    }
}

在这里插入图片描述

获取cookie值:cookie不能用map来获取了,但是cookie有专门的实体类,实体类里面可以获取到很多信息。

@RestController
public class ParameterTextController {
    @GetMapping("/cookie")
    public Map getCar(@CookieValue("Idea-ac8d9f93") String idea,
                      @CookieValue("Idea-ac8d9f93") Cookie cookie){
        Map<String, Object> map = new HashMap<>();
        map.put("Idea-ac8d9f93",idea);
        map.put("cookie",cookie.getName()+":"+cookie.getValue());
        return map;
    }
}

在这里插入图片描述

获取请求体:请求体只有post请求才能拥有,get请求是没有请求体的。请求体的获取相对简单,一个参数就可以获取到。

@PostMapping("/save")
    public Map<String,Object> postMethod(@RequestBody String content){
        Map<String, Object> map = new HashMap<>();
        map.put("content",content);
        return map;
    }

获取request域属性:获取request域属性使用@RequestAttribute注解,该注解可以获取到传过来的request域里面的数据。

@Controller
public class RequestController {
    @GetMapping("/goto")
    public String goToPage(HttpServletRequest request){
        request.setAttribute("msg","成功...");
        request.setAttribute("code",200);
        return "forward:/success";
    }

    @ResponseBody
    @GetMapping("/success")
    public Map success(@RequestAttribute("msg") String msg,
                       @RequestAttribute("code") Integer code,
                       HttpServletRequest request){
        Object msg1 = request.getAttribute("msg");
        Map<String, Object> map = new HashMap<>();
        map.put("requestMethod",msg1);
        map.put("msg",msg);
        map.put("code",code);
        return map;
    }
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值