Sobes.tech
Junior

Aké metódy sú určené na prácu s cookies v servletoch?

sobes.tech AI

Odpoveď od AI

V servletoch sa na prácu s cookie používajú metódy objektov HttpServletRequest (na získanie cookie) a HttpServletResponse (na odoslanie cookie).

Získanie cookie z požiadavky:

  • Cookie[] getCookies(): Vráti pole objektov Cookie, získaných v požiadavke. Ak cookie nie je, vráti null.

Odoslanie cookie v odpovedi:

  • void addCookie(Cookie cookie): Pridá zadaný objekt Cookie k odpovedi.

Trieda Cookie obsahuje nasledujúce základné metódy:

  • String getName(): Vráti názov cookie.
  • String getValue(): Vráti hodnotu cookie.
  • void setValue(String newValue): Nastaví novú hodnotu cookie.
  • String getPath(): Vráti cestu, po ktorej je cookie dostupná.
  • void setPath(String uri): Nastaví cestu pre cookie.
  • String getDomain(): Vráti doménu, pre ktorú je cookie platná.
  • void setDomain(String pattern): Nastaví doménu pre cookie.
  • int getMaxAge(): Vráti maximálnu dobu života (v sekundách) cookie. Záporná hodnota znamená, že cookie existuje do zatvorenia prehliadača. 0 znamená odstránenie cookie.
  • void setMaxAge(int expiry): Nastaví maximálnu dobu života cookie.
  • boolean getSecure(): Vráti true, ak má byť cookie odoslaná iba cez zabezpečené (HTTPS) spojenie.
  • void setSecure(boolean flag): Nastaví príznak bezpečného spojenia pre cookie.
  • int getVersion(): Vráti verziu protokolu cookie.
  • void setVersion(int v): Nastaví verziu protokolu cookie.
  • boolean isHttpOnly(): Vráti true, ak je cookie dostupná iba cez HTTP požiadavky (nie cez JavaScript).
  • void setHttpOnly(boolean isHttpOnly): Nastaví príznak HttpOnly pre cookie.

Príklad získania a nastavenia cookie:

// Získanie cookie z požiadavky
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Použite hodnotu cookie
            break;
        }
    }
}

// Nastavenie novej cookie v odpovedi
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Doba platnosti 30 dní
response.addCookie(newCookie);