[JAVA] Holen Sie sich Cookies im Frühling

Eine übliche Praxis bestand darin, Cookies von HttpServletRequest abzurufen und daraus abzurufen. Es sieht aus wie das:

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

Mit Spring können Sie es jedoch etwas einfacher machen.

Cookie-Generierung

Setzen Sie den Cookie entsprechend.

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

Holen Sie sich Cookie

Sie können es einfach erhalten, indem Sie die CookieValue-Annotation wie unten gezeigt verwenden. Das Argument ist der Schlüsselwert des Cookies.

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

Bei der obigen Schreibmethode tritt jedoch ein Laufzeitfehler auf, wenn das Cookie gelöscht wird und nicht abgerufen werden kann. ※Resolved [org.springframework.web.bind.MissingRequestCookieException: Missing cookie 'key1' for method parameter of type String])

Daher kann dies vermieden werden, indem für @CookieValue die erforderliche Anforderung auf false gesetzt wird (Standard ist erforderlich = true), wie unten gezeigt.

In diesem Fall wird im Argument jedoch null festgelegt. Durch Angabe des Attributs defaultValue kann der Standardwert angegeben werden, wenn er nicht aus dem Cookie abgerufen werden kann.

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

das ist alles.

Recommended Posts

Holen Sie sich Cookies im Frühling
Injizieren Sie den Logger im Frühjahr
Verwenden Sie Interceptor im Frühjahr
Microservices in Spring Cloud
Holen Sie sich im Frühjahr mehrere Ressourcen, die dem Muster entsprechen
[Rails] Holen Sie sich UserAgent auf den Controller
Holen Sie sich EXIF-Informationen in Java
Beginnen Sie mit Spring Boot
Spring Boot 2 Multiprojekt mit Gradle
[Java] KClass in Java herunterladen [Kotlin]
Fehler in der Spring-Datenbankverbindung
Wichtige Änderungen in Spring Boot 1.5
NoHttpResponseException in Spring Boot + WireMock
Schleifenschritt mit Spring Batch
Abrufen von Fehlerinformationen mithilfe von DefaultErrorAttributes und ErrorAttributeOptions in Spring Boot 2.3
Wie man Lombok im Frühling benutzt
Frühlingsstiefel Hallo Welt in Eclipse
Spring Boot-Anwendungsentwicklung in Eclipse
Java Spring-Umgebung in vs Code
Schreiben Sie den Testcode mit Spring Boot
[Java] Abrufen von Daten aus der Datenbank mithilfe des Singleton-Dienstes in Spring (Boot)
Holen Sie sich null-sichere Map-Werte in Java
So erhalten Sie Parameter in Spark
Implementieren Sie reCAPTCHA v3 in Java / Spring
Erhalten Sie Validierungsergebnisse mit Spring Boot
Speichern Sie Sitzungsinformationen mit Spring Session in der Datenbank
OkHttp3 (GET, POST) in Android Studio
Implementieren Sie die REST-API mit Spring Boot
Was ist @Autowired im Spring Boot?
Die Ereignisverarbeitung wird im Frühjahr durchgeführt.
Implementieren Sie die Spring Boot-Anwendung in Gradle
Verwendung von Thymeleaf mit Spring Boot
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
Holen Sie sich das Ergebnis von POST in Java
Spring Autowired wird im Konstruktor geschrieben
Starten Sie mit IntelliJ ein (altes) Spring Boot-Projekt
Konvertieren Sie Anforderungsparameter im Frühjahr in Enum
Nehmen Sie Kontakt mit Eclipse MicroProfile Health auf
Existiert mit der Spezifikation in Spring Data JPA
Spring Boot-Protokoll im JSON-Format ausgeben
Memorandum zum Herunterladen lokaler Dateien mit Spring Boot
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Lösen Sie die Thymeleaf-Syntaxprüfung in Spring Boot
Fehler bei der Implementierung bei der Implementierung der Spring-Validierung
Separate Task Executors, die von @Async im Frühjahr verwendet werden
[Trainieren! ] Zeigen Sie Hello World mit Spring Boot an
Funktionsweise des Dispatcher-Servlets in Spring MVC
Verwenden Sie die DynamoDB-Abfragemethode mit Spring Boot
Null-Support-Cache in Spring Data Redis
Antwortdaten direkt im Frühjahr schreiben
So erhalten Sie das Datum mit Java
Wichtige Änderungen in der Kernfunktionalität von Spring Framework 5.0
Abrufen des Verlaufs vom Zabbix-Server in Java
Wechseln der Beans mit Profilanmerkung im Frühjahr
DI SessionScope Bean im Spring Boot 2-Filter
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
Maven-Konfigurationsproblem mit Spring pom.xml in Eclipse
Ändern Sie das Sitzungszeitlimit in Spring Boot
Holen Sie sich Wettervorhersage von Open Weather Map with Rails
Ausgabe Bean als JSON im Frühjahr