Проблема с request.getSession - PullRequest
       2

Проблема с request.getSession

0 голосов
/ 16 ноября 2010

У меня есть сервлет LogMeOut.java, где я пишу следующий код:

HttpSession session = request.getSession(false);
if (session != null){
   //statements to delete my cookies //
   session.invalidate();
}

Моя проблема в том, что когда я впервые вызываю LogMeOut из jsp, он выдает объект запроса без сеанса. Так что мой session.invalidate не работает. Но если я возвращаюсь к своему jsp и затем вызываю тот же LogMeOut, на этот раз объект запроса содержит правильный сеанс, и он работает. Есть идеи почему? Или с чего мне начать искать?

1 Ответ

3 голосов
/ 16 ноября 2010

Если вы позвоните getSession(false) по запросу без существующего сеанса, он вернет null. Это ожидаемое, документированное поведение .

Если вы позвоните getSession(true) или просто getSession(), то будет создан сеанс, если его не существует.

Выполнение JSP, как правило, также создает сеанс автоматически, поэтому при следующем выполнении кода будет присутствовать сеанс.

Однако, если все, что вы хотите сделать, это сделать недействительным существующий сеанс, тогда ваш код выглядит нормально для меня - нет необходимости создавать сеанс, просто чтобы немедленно сделать его недействительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...