Sobes.tech
Junior
164

Koje metode su predviđene za rad sa kolačićima u servletima?

Одговор од АИ

sobes.tech АИ

U servletima se koriste metode objekata HttpServletRequest (za dobijanje kolačića) i HttpServletResponse (za slanje kolačića).

Dobijanje kolačića iz zahteva:

  • Cookie[] getCookies(): Vraća niz objekata Cookie dobijenih u zahtevu. Ako kolačići nisu prisutni, vraća null.

Slanje kolačića u odgovoru:

  • void addCookie(Cookie cookie): Dodaje naveden objekat Cookie u odgovor.

Klasa Cookie sadrži sledeće glavne metode:

  • String getName(): Vraća ime kolačića.
  • String getValue(): Vraća vrednost kolačića.
  • void setValue(String newValue): Postavlja novu vrednost za kolačić.
  • String getPath(): Vraća putanju na kojoj je kolačić dostupan.
  • void setPath(String uri): Postavlja putanju za kolačić.
  • String getDomain(): Vraća domen za koji je kolačić validan.
  • void setDomain(String pattern): Postavlja domen za kolačić.
  • int getMaxAge(): Vraća maksimalno vreme trajanja (u sekundama) kolačića. Negativna vrednost znači da kolačić postoji do zatvaranja pregledača. 0 znači brisanje kolačića.
  • void setMaxAge(int expiry): Postavlja maksimalno vreme trajanja kolačića.
  • boolean getSecure(): Vraća true ako kolačić treba da bude poslata samo putem sigurne (HTTPS) veze.
  • void setSecure(boolean flag): Postavlja zastavicu sigurne veze za kolačić.
  • int getVersion(): Vraća verziju protokola kolačića.
  • void setVersion(int v): Postavlja verziju protokola kolačića.
  • boolean isHttpOnly(): Vraća true ako je kolačić dostupan samo putem HTTP zahteva (ne putem JavaScript-a).
  • void setHttpOnly(boolean isHttpOnly): Postavlja zastavicu HttpOnly za kolačić.

Primer dobijanja i postavljanja kolačića:

// Dobijanje kolačića iz zahteva
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Koristite vrednost kolačića
            break;
        }
    }
}

// Postavljanje novog kolačića u odgovor
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Trajanje od 30 dana
response.addCookie(newCookie);