Подтвердить что ты не робот

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

Как проверить, недействителен ли сеанс или нет? В API нет метода.

Это то же самое, что и isNew()? И в чем разница, если нет?

4b9b3361

Ответ 1

Если вы хотите узнать, действительно ли это на основании запроса:

request.isRequestedSessionIdValid()

  or

HttpSession sess = request.getSession(false);
if (sess != null) {
   // it valid
}

Если вы сохранили ссылку на сеанс и должны проверить, что я бы

try {
  long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
  // it invalid
}

Ответ 2

isNew() истинно, только если этот сеанс еще не был принят клиентом (т.е. он был только что создан, а JSESSIONID еще не отправлен, или если он был отправлен, клиент не отправил его обратно, поэтому сервер не знает об этом и создал другой сеанс)

Ответ 3

Для всех целей и целей да. Тем не менее, он будет вызывать исключение IllegalStateException, если вызов в сеансе недействителен в том же цикле запроса-ответа.