直接上代码(常用注解以及具体使用方法)
//@PPathVariable 路径变量 //@RequestHeader 获取请求头 //@RequestParam 获取请求参数 //@RequestBody 获取请求体 //@CookieValue 获取cookie的值 //@RequestAttribute 获取request属性
在controller中编写代码
//@PPathVariable 路径变量
//@RequestHeader 获取请求头
//@RequestParam 获取请求参数
//@RequestBody 获取请求体
//@CookieValue 获取cookie的值
//@RequestAttribute 获取request属性
@GetMapping("/car/{id}/owner/{username}")
public Map<String, Object> getCar(@PathVariable("id") Integer id,
@PathVariable("username") String name,
@PathVariable Map<String, String> pv, //直接获取完整路径变量
@RequestHeader("User-Agent") String ua,
@RequestHeader Map<String, String> header,//直接获取完整请求头
@RequestParam("age") Integer age,
@RequestParam("hobby") List<String> hobby,
@RequestParam Map<String, String>params//直接获取完整请求参数
//@CookieValue() Cookie ck
) {
Map<String, Object> map = new HashMap<>();
// map.put("id", id);
// map.put("name", name);
// map.put("pv", pv);
// map.put("ua", ua);
// map.put("header", header);
map.put("age", age);
map.put("hobby", hobby);
map.put("params", params);
//map.put("ck", ck);
return map;
}
@PostMapping("/getMethod") //post请求获取请求体
public Map<String, Object> getMethod(@RequestBody String content){
Map<String, Object> result = new HashMap<>();
result.put("content", content);
return result;
}
测试:
测试使用@RequestAttribute,先定义一个goto用来做转接,在转接过程中添加request属性,然后转接接收到request取出添加的数据
@Controller
public class RequestController {
@GetMapping("/goto")
public String gotoPage(HttpServletRequest request){
request.setAttribute("msg","success");
request.setAttribute("code",200);
return "forward:/success"; //转发到success
}
@ResponseBody
@GetMapping("success")
public Map success(@RequestAttribute("msg")String msg,
@RequestAttribute("code") Integer code,
HttpServletRequest request){
Map<String, Object> result = new HashMap<>();
result.put("msg", msg);
result.put("code", code);
result.put("code", request.getAttribute("code"));
return result;
}
}