java - get cookie value by name in spring mvc

The simplest way is using it in a controller with the @CookieValue annotation:

@RequestMapping("/hello")
public String hello(@CookieValue("foo") String fooCookie) {
    // ...
}

Otherwise, you can get it from the servlet request using Spring org.springframework.web.util.WebUtils

WebUtils.getCookie(HttpServletRequest request, String cookieName)

By the way, the code pasted into the question could be refined a bit. Instead of using #setHeader(), this is much more elegant:

response.addCookie(new Cookie("test", "value"));

You can also use org.springframework.web.util.WebUtils.getCookie(HttpServletRequest, String).


private String getCookieValue(HttpServletRequest req, String cookieName) {
    return Arrays.stream(req.getCookies())
            .filter(c -> c.getName().equals(cookieName))
            .findFirst()
            .map(Cookie::getValue)
            .orElse(null);
}