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;
    }
}

springboot中常见的几个参数注解_第1张图片

获取请求头:获取请求头使用@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;
    }
}

springboot中常见的几个参数注解_第2张图片

获取请求参数:获取请求参数使用@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);
    }
}

springboot中常见的几个参数注解_第3张图片

获取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;
    }
}

springboot中常见的几个参数注解_第4张图片

获取请求体:请求体只有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;
    }
}

springboot中常见的几个参数注解_第5张图片

你可能感兴趣的:(spring,boot,java,spring)