Sobes.tech
Junior

Welke methoden zijn voorzien voor het werken met cookies in servlets?

sobes.tech AI

Antwoord van AI

In servlets worden de methoden van de objecten HttpServletRequest (om cookies op te halen) en HttpServletResponse (om cookies te verzenden) gebruikt.

Cookies ophalen uit de aanvraag:

  • Cookie[] getCookies(): Geeft een array van Cookie-objecten terug die in de aanvraag zijn ontvangen. Als er geen cookies zijn, wordt null geretourneerd.

Cookies verzenden in het antwoord:

  • void addCookie(Cookie cookie): Voegt het opgegeven Cookie-object toe aan het antwoord.

De klasse Cookie bevat de volgende hoofdmethoden:

  • String getName(): Geeft de naam van de cookie terug.
  • String getValue(): Geeft de waarde van de cookie terug.
  • void setValue(String newValue): Stelt een nieuwe waarde voor de cookie in.
  • String getPath(): Geeft het pad terug waarop de cookie beschikbaar is.
  • void setPath(String uri): Stelt het pad voor de cookie in.
  • String getDomain(): Geeft het domein terug waarvoor de cookie geldig is.
  • void setDomain(String pattern): Stelt het domein voor de cookie in.
  • int getMaxAge(): Geeft de maximale levensduur (in seconden) van de cookie terug. Negatieve waarde betekent dat de cookie bestaat tot de browser wordt gesloten. 0 betekent het verwijderen van de cookie.
  • void setMaxAge(int expiry): Stelt de maximale levensduur van de cookie in.
  • boolean getSecure(): Geeft true terug als de cookie alleen via een beveiligde (HTTPS) verbinding moet worden verzonden.
  • void setSecure(boolean flag): Stelt de beveiligingsvlag voor de cookie in.
  • int getVersion(): Geeft de versie van het cookieprotocol terug.
  • void setVersion(int v): Stelt de versie van het cookieprotocol in.
  • boolean isHttpOnly(): Geeft true terug als de cookie alleen via HTTP-verzoeken toegankelijk is (niet via JavaScript).
  • void setHttpOnly(boolean isHttpOnly): Stelt de HttpOnly-vlag voor de cookie in.

Voorbeeld van het ophalen en instellen van cookies:

// Cookies ophalen uit de aanvraag
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Gebruik de waarde van de cookie
            break;
        }
    }
}

// Nieuwe cookie instellen in het antwoord
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Levensduur 30 dagen
response.addCookie(newCookie);