Junior
91
questionbank
Какие методы для работы с cookies предусмотрены в сервлетах?
Ответ от нейросети
sobes.tech AI
В сервлетах, для работы с cookie используются методы объектов HttpServletRequest (для получения cookie) и HttpServletResponse (для отправки cookie).
Получение cookie из запроса:
Cookie[] getCookies(): Возвращает массив объектовCookie, полученных в запросе. Если cookie нет, возвращаетnull.
Отправка cookie в ответе:
void addCookie(Cookie cookie): Добавляет указанный объектCookieк ответу.
Класс Cookie содержит следующие основные методы:
String getName(): Возвращает имя cookie.String getValue(): Возвращает значение cookie.void setValue(String newValue): Устанавливает новое значение cookie.String getPath(): Возвращает путь, по которому cookie доступен.void setPath(String uri): Устанавливает путь для cookie.String getDomain(): Возвращает домен, для которого cookie действителен.void setDomain(String pattern): Устанавливает домен для cookie.int getMaxAge(): Возвращает максимальное время жизни (в секундах) cookie. Отрицательное значение означает, что cookie существует до закрытия браузера. 0 означает удаление cookie.void setMaxAge(int expiry): Устанавливает максимальное время жизни cookie.boolean getSecure(): Возвращаетtrue, если cookie должен отправляться только по защищенному (HTTPS) соединению.void setSecure(boolean flag): Устанавливает флаг безопасного соединения для cookie.int getVersion(): Возвращает версию протокола cookie.void setVersion(int v): Устанавливает версию протокола cookie.boolean isHttpOnly(): Возвращаетtrue, если cookie доступен только через HTTP-запросы (не через JavaScript).void setHttpOnly(boolean isHttpOnly): Устанавливает флаг HttpOnly для cookie.
Пример получения и установки cookie:
// Получение cookie из запроса
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("userName".equals(cookie.getName())) {
String userName = cookie.getValue();
// Используйте значение cookie
break;
}
}
}
// Установка нового cookie в ответе
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Срок действия 30 дней
response.addCookie(newCookie);