在学习Servlet的时候,我们便学习过如何获取Cookie,我们来回顾以下吧!
@RestController
@RequestMapping("/param")
public class ParamController {//如何获取Cookie@RequestMapping("/getCookie")public String getCookie(HttpServletRequest request){Cookie[] cookies=request.getCookies();//for循环获取Cookiefor(Cookie cookie :cookies){System.out.println(cookie.getName()+"="+cookie.getValue());}return "成功获取Cookie";}
}
当然,在遍历Cookie的时候,小编使用了ForEach,但是,我们也可以使用Lombda表达式的形式来进行遍历:
@RestController
@RequestMapping("/param")
public class ParamController {//如何获取Cookie@RequestMapping("/getCookie")public String getCookie(HttpServletRequest request){Cookie[] cookies=request.getCookies();//for循环获取Cookie
// for(Cookie cookie :cookies){
// System.out.println(cookie.getName()+"="+cookie.getValue());
// }
////Lombda表达式遍历Cookieif (cookies != null){Arrays.asList(cookies).forEach(cookie -> {System.out.println(cookie.getName()+"="+cookie.getValue());});}return "成功获取Cookie";}
}
当我们在浏览器输入:localhost:8080/param/getCookie
当我们手动的在浏览器创建几个Cookie
重启程序,刷新浏览器URL,此时有着:
在Idea的控制台有着以下输出:
跟小编手动创建的几个Cookie一样!
所以获取Cookie成功!!
当然,上述是在学习Servlet的时候,所学习的获取Cookie,那么,此时如何通过注解的方式来获取Cookie呢??
@RequestMapping("/getCookie2")public String getCookie2(@CookieValue String abcd){return "成功获取Cookie";}
此时在浏览器输入:localhost:8080/param/getCookie2
通病:使用注解的方式,Cookie只能一个一个的获取!!
当然,也可以一次拿多个Cookie:
@RequestMapping("/getCookie2")public String getCookie2(@CookieValue String abcd,@CookieValue String dfgh){return "成功获取Cookie:"+abcd+" "+dfgh;}
运行结果为: