Junior
Jakie metody są przewidziane do obsługi plików cookie w serwletach?
sobes.tech AI
Odpowiedź od AI
W serwletach używane są metody obiektów HttpServletRequest (do pobierania cookie) i HttpServletResponse (do wysyłania cookie).
Pobieranie cookie z żądania:
Cookie[] getCookies(): Zwraca tablicę obiektówCookieotrzymanych w żądaniu. Jeśli nie ma cookie, zwracanull.
Wysyłanie cookie w odpowiedzi:
void addCookie(Cookie cookie): Dodaje wskazany obiektCookiedo odpowiedzi.
Klasa Cookie zawiera następujące główne metody:
String getName(): Zwraca nazwę cookie.String getValue(): Zwraca wartość cookie.void setValue(String newValue): Ustawia nową wartość cookie.String getPath(): Zwraca ścieżkę, na której cookie jest dostępne.void setPath(String uri): Ustawia ścieżkę dla cookie.String getDomain(): Zwraca domenę, dla której cookie jest ważne.void setDomain(String pattern): Ustawia domenę dla cookie.int getMaxAge(): Zwraca maksymalny czas życia (w sekundach) cookie. Wartość ujemna oznacza, że cookie istnieje do zamknięcia przeglądarki. 0 oznacza usunięcie cookie.void setMaxAge(int expiry): Ustawia maksymalny czas życia cookie.boolean getSecure(): Zwracatrue, jeśli cookie ma być wysyłane tylko przez bezpieczne (HTTPS) połączenie.void setSecure(boolean flag): Ustawia flagę bezpiecznego połączenia dla cookie.int getVersion(): Zwraca wersję protokołu cookie.void setVersion(int v): Ustawia wersję protokołu cookie.boolean isHttpOnly(): Zwracatrue, jeśli cookie jest dostępne tylko przez żądania HTTP (nie przez JavaScript).void setHttpOnly(boolean isHttpOnly): Ustawia flagę HttpOnly dla cookie.
Przykład pobierania i ustawiania cookie:
// Pobieranie cookie z żądania
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("userName".equals(cookie.getName())) {
String userName = cookie.getValue();
// Użyj wartości cookie
break;
}
}
}
// Ustawianie nowego cookie w odpowiedzi
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Czas trwania 30 dni
response.addCookie(newCookie);