我正在开发一个 java spring mvc 应用程序。我以这种方式在我的 Controller 的一个方法中设置了一个 cookie:
@RequestMapping(value = {"/news"}, method = RequestMethod.GET)
public ModelAndView news(Locale locale, Model model, HttpServletResponse response, HttpServletRequest request) throws Exception {
...
response.setHeader("Set-Cookie", "test=value; Path=/");
...
modelAndView.setViewName("path/to/my/view");
return modelAndView;
}
这工作正常,我可以在我的浏览器控制台中看到一个名为 test
和值“value”的 cookie。现在我想在其他方法中按名称获取 cookie 值。如何获取 test
cookie 的值?
最佳答案
最简单的方法是在带有 @CookieValue
注释的 Controller 中使用它:
@RequestMapping("/hello")
public String hello(@CookieValue("foo") String fooCookie) {
// ...
}
否则,您可以使用 Spring org.springframework.web.util.WebUtils
WebUtils.getCookie(HttpServletRequest request, String cookieName)
顺便说一句,粘贴到问题中的代码可以稍微改进一下。而不是使用 #setHeader()
,这更优雅:
response.addCookie(new Cookie("test", "value"));
关于java - 在spring mvc中按名称获取cookie值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118342/