[JAVA] Obtenez des cookies au printemps

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.

Génération de cookies

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;
   }

Obtenez un cookie

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

Obtenez des cookies au printemps
Inject Logger au printemps
Utilisez Interceptor au printemps
Microservices dans Spring Cloud
Obtenez plusieurs ressources qui correspondent au modèle au printemps
[Rails] Obtenir UserAgent sur le contrôleur
Obtenir des informations EXIF en Java
Démarrez avec Spring Boot
Multi-projets Spring Boot 2 avec Gradle
[Java] Obtenir KClass en Java [Kotlin]
Erreur de connexion à la base de données Spring
Changements majeurs dans Spring Boot 1.5
NoHttpResponseException dans Spring Boot + WireMock
Étape de boucle avec Spring Batch
Obtenez des informations d'erreur à l'aide de DefaultErrorAttributes et ErrorAttributeOptions dans Spring Boot 2.3
Comment utiliser Lombok au printemps
Spring Boot Hello World dans Eclipse
Développement d'applications Spring Boot dans Eclipse
Environnement Java Spring dans vs Code
Écrire du code de test avec Spring Boot
[Java] Obtenir des données de la base de données à l’aide du service singleton dans Spring (Boot)
Obtenir des valeurs de carte nulles en Java
Comment obtenir des paramètres dans Spark
Implémenter reCAPTCHA v3 dans Java / Spring
Obtenez des résultats de validation avec Spring Boot
Stocker les informations de session dans la base de données avec Spring Session
OkHttp3 (GET, POST) dans Android Studio
Implémenter l'API REST avec Spring Boot
Qu'est-ce que @Autowired dans Spring Boot?
Le traitement des événements est effectué au printemps.
Implémenter l'application Spring Boot dans Gradle
Comment utiliser Thymeleaf avec Spring Boot
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Obtenez le résultat de POST en Java
Spring Autowired est écrit dans le constructeur
Lancer un (ancien) projet Spring Boot avec IntelliJ
Convertir les paramètres de demande en Enum au printemps
Contactez Eclipse MicroProfile Health
Existe en utilisant la spécification dans Spring Data JPA
Sortie du journal Spring Boot au format json
Mémorandum de téléchargement de fichier local avec Spring Boot
Créer un projet Java Spring Boot avec IntelliJ
Desserrer la vérification de la syntaxe de Thymeleaf dans Spring Boot
Erreur de mise en œuvre lors de la mise en œuvre de la validation Spring
Exécuteurs de tâches séparés utilisés par @Async au printemps
[Entraine toi! ] Affichez Hello World avec Spring Boot
Fonctionnement du servlet Dispatcher dans Spring MVC
Utiliser la méthode de requête DynamoDB avec Spring Boot
Cache de support nul dans Spring Data Redis
Pour écrire des données de réponse directement dans Spring
Comment obtenir la date avec Java
Changements majeurs dans la fonctionnalité de base de Spring Framework 5.0
Obtenir l'historique du serveur Zabbix en Java
Changement de beans avec annotation de profil dans Spring
DI SessionScope Bean dans le filtre Spring Boot 2
[* Java *] J'ai participé au JJUG CCC 2019 Spring
Problème de configuration Maven avec Spring pom.xml dans Eclipse
Modifier le délai d'expiration de la session dans Spring Boot
Obtenez les prévisions météo de Open Weather Map with Rails
Bean de sortie au format JSON au printemps