Я впервые использую сервлеты, но я добился большого прогресса. Мои сервлеты работают хорошо. Поэтому я решил поставить механизм аутентификации, который создает сеанс, если пользователи дают правильный пароль и идентификаторы. Но сессии совершенно новые для меня. Поэтому я не совсем следую логике, но я начал понимать.
Как я упоминал ранее, один из моих сервлетов предназначен для входа в систему. Если пароль правильный, создается сеанс (я не храню никаких объектов / данных в сеансах), и клиент (remoteUser) получает уведомление о том, что пароль принят и сессия создана. То, что делает клиент, это чтобы получить любой другой сервлет в том же приложении. Другие сервлеты получают сеанс, чтобы проверить, создан ли он и действителен ли он (не истек ли тайм-аут). Для этой цели в этих других сервлетах я получаю сессию с:
HttpSession session = req.getSession(false); //false because this is not the place to create a session. sessions should only be created in the login servlet.
Но это возвращает ноль. Итак, я попробовал:
HttpSession session = req.getSession();
И проверил с помощью session.isNew (); и у меня это был новый сеанс. Таким образом, сессия, которую я создал в сервлете входа, не может быть вызвана с помощью req.getSession (); в другом сервлете.
PS: при создании сеанса в сервлете входа в систему: session.setMaxInactiveInterval (300); // 5 минут
Большое спасибо за любой ответ!