Как проверить, является ли сеанс недействительным
-
10-07-2019 - |
Вопрос
Как проверить, является ли сеанс недействительным или нет? В API нет никакого метода . р>
Это то же самое, что и isNew ()
? А какая разница, если нет?
Решение
Если вы хотите узнать, действительно ли он действителен на основании запроса:
request.isRequestedSessionIdValid()
or
HttpSession sess = request.getSession(false);
if (sess != null) {
// it's valid
}
Если вы сохранили ссылку на сеанс и вам необходимо подтвердить, я бы
try {
long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
// it's invalid
}
Другие советы
isNew ()
имеет значение true, только если этот сеанс еще не был принят клиентом (т. е. он был только что создан, а JSESSIONID еще не отправлен или если он был отправлен, клиент не сделал ' не отправлять обратно, поэтому сервер не знает об этом и создал еще один сеанс)
Для всех намерений и целей, да. Однако он вызовет исключение IllegalStateException, если он будет вызван в сеансе, недействительном в том же цикле запрос-ответ.