Une pratique courante consistait à obtenir des cookies à partir de HttpServletRequest et à en récupérer. Cela ressemble à ceci:
CookieController.java
@GetMapping("cookies3")
public String showCookies3(HttpServletRequest httpServletRequest) {
Cookie[] cookies = httpServletRequest.getCookies();
Arrays.stream(cookies).forEach(cookie -> System.out.println(cookie.getValue()));
return VIEW_NAME;
}
Cependant, vous pouvez l'obtenir un peu plus facilement en utilisant Spring.
Définissez le cookie de manière appropriée.
CookieController.java
private final String VIEW_NAME = "demo/cookie/index";
@GetMapping("/")
public String index(HttpServletResponse httpServletResponse) {
httpServletResponse.addCookie(new Cookie("key1", "value1"));
return VIEW_NAME;
}
Vous pouvez facilement l'obtenir en utilisant l'annotation CookieValue comme indiqué ci-dessous. L'argument est la valeur clé du cookie.
CookieController.java
private final String VIEW_NAME = "demo/cookie/index";
@GetMapping("cookies1")
public String showCookies1(@CookieValue("key1") String cookieValue) {
System.out.println(cookieValue);
return VIEW_NAME;
}
Cependant, avec la méthode d'écriture ci-dessus, si le cookie est supprimé et ne peut pas être obtenu, une erreur d'exécution se produit. ※Resolved [org.springframework.web.bind.MissingRequestCookieException: Missing cookie 'key1' for method parameter of type String])
Par conséquent, cela peut être évité en définissant required de @CookieValue sur false (la valeur par défaut est requise = true) comme indiqué ci-dessous.
Cependant, dans ce cas, null est défini dans l'argument, donc en spécifiant l'attribut defaultValue, il est possible de spécifier la valeur par défaut si elle ne peut pas être obtenue à partir du cookie.
CookieController.java
private final String VIEW_NAME = "demo/cookie/index";
@GetMapping("cookies2")
public String showCookies2(
@CookieValue(name = "key1", required = false, defaultValue = "default value1") String cookieValue) {
System.out.println(cookieValue);
return VIEW_NAME;
}
c'est tout.
Recommended Posts