Как проверить, является ли сеанс недействительным

StackOverflow https://stackoverflow.com/questions/634929

  •  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, если он будет вызван в сеансе, недействительном в том же цикле запрос-ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top