Sobes.tech
Junior

Milyen módszerek vannak a cookie-k kezelésére a servletekben?

sobes.tech MI

Válasz az MI-től

A servlet-ekben az HttpServletRequest objektum metódusait (a cookie-k lekéréséhez) és az HttpServletResponse objektum metódusait (a cookie-k küldéséhez) használják.

Cookie-k lekérése a kérésből:

  • Cookie[] getCookies(): Visszaadja a kérésben kapott Cookie objektumok tömbjét. Ha nincs cookie, null-t ad vissza.

Cookie-k küldése a válaszban:

  • void addCookie(Cookie cookie): Hozzáadja a megadott Cookie objektumot a válaszhoz.

A Cookie osztály a következő főbb metódusokat tartalmazza:

  • String getName(): Visszaadja a cookie nevét.
  • String getValue(): Visszaadja a cookie értékét.
  • void setValue(String newValue): Új értéket állít be a cookie-nak.
  • String getPath(): Visszaadja az útvonalat, ahol a cookie elérhető.
  • void setPath(String uri): Beállítja az útvonalat a cookie-hoz.
  • String getDomain(): Visszaadja a domaint, amelyhez a cookie tartozik.
  • void setDomain(String pattern): Beállítja a domaint a cookie-hoz.
  • int getMaxAge(): Visszaadja a cookie maximális életidejét (másodpercben). Negatív érték azt jelenti, hogy a cookie a böngésző bezárásáig él. 0 a cookie törlése.
  • void setMaxAge(int expiry): Beállítja a cookie maximális életidejét.
  • boolean getSecure(): Visszaadja, hogy a cookie csak biztonságos (HTTPS) kapcsolaton keresztül küldhető-e.
  • void setSecure(boolean flag): Beállítja a biztonságos kapcsolat flagjét a cookie-hoz.
  • int getVersion(): Visszaadja a cookie protokoll verzióját.
  • void setVersion(int v): Beállítja a cookie protokoll verzióját.
  • boolean isHttpOnly(): Visszaadja, hogy a cookie csak HTTP-kéréseken keresztül elérhető-e (nem JavaScript által).
  • void setHttpOnly(boolean isHttpOnly): Beállítja az HttpOnly flag-et a cookie-hoz.

Cookie-k lekérése és beállítása példával:

// Cookie-k lekérése a kérésből
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Használja a cookie értékét
            break;
        }
    }
}

// Új cookie beállítása a válaszban
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // 30 napos időtartam
response.addCookie(newCookie);