У меня есть веб-приложение, в котором я установил максимальное время бездействия 10 минут.Это только для целей тестирования.В основном, если время сеанса истекло, и я щелкаю ссылку, браузер следующего окна проверяет, является ли сеанс действительным.Это тоже работает нормально.Если это произойдет, я получаю сообщение «сеанс истек, пожалуйста, войдите снова».Но оригинальное окно остается открытым, и если я нажму на ту же ссылку, то в этот раз я смогу увидеть страницу, хотя я не вошел в систему снова.Почему это так?
Я использую session.invalidate()
, если сеанс истек, чтобы убедиться, что все атрибуты удалены, но это не работает.
Я использую следующую частькод в начале страницы:
if(request.isRequestedSessionIdValid() == false)
{
response.sendRedirect("expired.jsp");
session.invalidate();
return;
}
Это работает при первой загрузке этой страницы, но если я снова нажму на ссылку, чтобы загрузить ее еще раз, это условие не будет выполнено, несмотря навремя сеанса истекло.
Не могли бы вы дать какой-нибудь совет?
Обновление : мое веб-приложение работает следующим образом:
Пользователь получаетна страницу index.jsp и использует идентификатор и пароль для доступа к системе, то есть страница BRMspace.jsp, где есть структура папок для доступа пользователя в зависимости от того, какие документы они ищут.При нажатии на каждую папку отображается таблица с заполненной базой данных, чтобы пользователь мог загрузить нужные документы.
Проблема, с которой я столкнулся, заключается в том, что после 10 минут бездействия пользователь нажимает на одну папкуна начальном экране база данных не отображается, вместо этого я получаю сообщение о том, что сессия истекла, и я перенаправлен на страницу входа, что идеально.Однако, если я снова нажму на ту же папку, на этот раз я получу обычную таблицу с данными и всеми документами.Кажется, что после одного клика время неактивности больше не действует .... поэтому я не уверен, как это сделать ... Я использую session.invalidate()
, чтобы удалить все данные о сеансе, но obvioulsy не работает.
Мне нужно, чтобы пользователь снова перенаправлялся на страницу входа после времени бездействия, независимо от того, где пользователь нажимает.
Это обновление:
Привет, у меня естьповторно ответить на этот вопрос, который был очень полезен для решения 90% моей первоначальной проблемы, но у меня все еще остался один ... в моем веб-приложении, когда при входе в систему у пользователя есть список вариантов, на которые можно нажать,каждый щелчок переносит их на новую вкладку, в которой находятся разные файлы .jsp ... если сессия истекла, на этих вкладках отображается файл expired.jsp, который идеально ... однако на исходной вкладке, отображаемой послепользовательский логин, остается в живых, я имею в виду, это не показывает, что сеанс истек ... что я могу сделать в этом случае? ...