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 objekataCookiedobijenih u zahtevu. Ako kolačići nisu prisutni, vraćanull.
Slanje kolačića u odgovoru:
void addCookie(Cookie cookie): Dodaje naveden objekatCookieu 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ćatrueako 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ćatrueako 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);