Как проверить, истек ли сеанс в Java? - PullRequest
14 голосов
/ 15 января 2010

Есть ли другой способ проверить истечение сеанса, кроме этого

session.isNew ()

Ответы [ 2 ]

29 голосов
/ 15 января 2010

Да:

  • вы можете позвонить HttpServletRequest.getSession(false) и вместо сеанса вы получите null, если еще нет ни одного активного.

  • вы можете определить слушателя жизненного цикла (используя HttpSessionListener) в вашем web.xml. Таким образом, вы можете получать уведомления в тот момент, когда сеанс кусает пыль.

24 голосов
/ 29 июня 2010

С session.isNew вы не можете отличить истекшие сессии от совершенно новых сессий. Вы можете проверить, истек ли сеанс и / или истекло ли время с помощью:

if (request.getRequestedSessionId() != null
        && !request.isRequestedSessionIdValid()) {
    // Session is expired
}

Используйте getRequestedSessionId, чтобы различать новые и существующие (действительные / истекшие) сеансы, и используйте isRequestedSessionIdValid, чтобы различать действительные и новые / истекшие сеансы.

Вы можете поместить этот код в Фильтр .

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