访问路径为http://localhost:8080/
@PathVariable
@GetMapping("/get/{id}/blank/{name}")public Map getValue(@PathVariable("id") Integer id,@PathVariable("name") String name,@PathVariable Map<String,String> kv){Map map = new HashMap<String,Object>();map.put("id",id);map.put("name",name);map.put("map",kv);return map;}
Restful风格获取路径的数据,适用于get方式获取数据。id和name的常规获取方式我比较熟悉。
值得注意的是@PathVariable注解可以直接用Map方式进行获取。key是@PathVariable(“key”)中所写入的"key",value是路径中传入的数据。
路径变量分别是id和name,那么id和name会以键值对的方式传入我们自定义的名为kv的map中。
在浏览器中输入:http://localhost:8080/get/15/blank/laowang
得到以下内容,验证成功
@RequestHeader
@GetMapping("/getHeaders")public Map getHeaders(@RequestHeader("User-Agent") String userAgent,@RequestHeader Map<String ,String > headers){HashMap<String, Object> map = new HashMap<>();map.put("UA",userAgent);map.put("headers",headers);return map;}
如果在@RequestHeader中指定了获取Header中的哪项值,就会获取某个值,比如我写的"User-Agent",如果指定,那么生命一个Map<String,String>类型的Map可以接收全部的Header数据。
向浏览器输入:
得到以下内容,验证成功
@RequestParam
@GetMapping("/getValue")public Map getValues(@RequestParam("id") Integer id,@RequestParam("name") String name,@RequestParam Map<String,String> kv){HashMap<String, Object> map = new HashMap<>();map.put("id",id);map.put("name",name);map.put("map",kv);return map;}
@RequestParam与@PathVariable相同,单独获取我熟悉。值得注意的是,它同时也支持用Map获取全部数据。
在浏览器中输入:http://localhost:8080/getValue?id=15&name=laowang
获得以下结果,验证成功
##@CookieValue
在请求体里有如下的值
@GetMapping("/getCookie")public Map getCookie(@CookieValue("Pycharm-5b7a320") String _ga,@CookieValue("Pycharm-5b7a320") Cookie cookie){HashMap<String, Object> map = new HashMap<>();map.put("Pycharm-5b7a320",_ga);map.put("cookie",cookie);return map;}
@CookieValue支持两种格式,一个是形参定义为String类型,或者定义为一个Cookie类型
向浏览器发送:http://localhost:8080/getCookie
得到以下结果,验证成功