junior
Какие методы для работы с cookies предусмотрены в сервлетах
Servlet API предоставляет класс javax.servlet.http.Cookie для работы с cookies. Чтение и запись cookies выполняется через разные объекты — запрос и ответ соответственно.
Основные операции
Пример
// Чтение cookies из запроса
Cookie[] cookies = request.getCookies(); // может вернуть null
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
String value = cookie.getValue();
}
}
}
// Создание и отправка cookie в ответе
Cookie cookie = new Cookie("username", "john");
cookie.setMaxAge(3600); // время жизни в секундах
cookie.setHttpOnly(true); // недоступен из JS
cookie.setSecure(true); // только по HTTPS
response.addCookie(cookie);
// Удаление cookie (установка maxAge = 0)
Cookie cookie = new Cookie("username", "");
cookie.setMaxAge(0);
response.addCookie(cookie);
Важная особенность API: HttpServletRequest предоставляет только getCookies() (чтение), HttpServletResponse — только addCookie() (запись). Методов для удаления cookie нет — для удаления нужно отправить cookie с тем же именем и maxAge = 0.
На собеседовании: упомяните, что
getCookies()может вернутьnull(не пустой массив), и что удаление cookie — это отправка cookie сmaxAge = 0. Это частые ловушки.