Gymterview
middle

Какие различные методы управления сессией в сервлетах вы знаете

HTTP — stateless протокол, и для отслеживания состояния пользователя между запросами используются различные механизмы управления сессией. Каждый из них имеет свои ограничения и область применения.

Способ Как работает Ограничения
Cookies Сервер отправляет уникальный ID (JSESSIONID) в cookie, клиент возвращает его с каждым запросом Не работает, если cookies отключены
URL Rewriting ID сессии добавляется к каждому URL как параметр Утомительно поддерживать, ID виден в URL
Hidden Form Fields ID сессии хранится в скрытом поле формы Работает только с формами, не со ссылками
HTTP Authentication Пользователь аутентифицируется при каждом запросе Не масштабируется, нет logout
Session Management API Servlet API (HttpSession) — комбинация cookies и URL rewriting Наиболее удобный и используемый способ

Session Management API

HttpSession — основной механизм управления сессиями в Servlet API. Контейнер автоматически использует cookies (JSESSIONID), а при их недоступности — fallback на URL rewriting. HttpSession предоставляет хранилище атрибутов, управление таймаутом и инвалидацию.

Пример
HttpSession session = request.getSession(); // создать или получить
session.setAttribute("user", currentUser);
session.setMaxInactiveInterval(1800); // 30 минут
session.invalidate(); // уничтожить сессию

На собеседовании: назовите основные способы и скажите, что на практике используется HttpSession с cookies. Частая ошибка — забыть упомянуть, что в микросервисной архитектуре серверные сессии заменяются на JWT-токены для stateless-подхода.