Отменить сессию при нажатии кнопки назад в IE JSP - PullRequest
2 голосов
/ 21 февраля 2012

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

Что я ищу, так это то, что после входа пользователя в приложение с указанием имени пользователя и пароля он / она будет на главной странице, но в любой момент, если пользователь закроет окно браузера или нажмет кнопку «Назад» сеанс должен быть признан недействительным, и пользователь не должен снова получать домашнюю страницу.

Я использую сервлет в качестве контроллера для входа (jsp) и 2 страниц jsp, 1-й страницы входа, 2-й домашней страницы.

Для тайм-аута я использую функцию web.xml <session-timeout>.

1 Ответ

2 голосов
/ 21 февраля 2012

Недействительный сеанс при нажатии кнопки возврата в IE JSP

Как насчет других браузеров? В мире гораздо больше браузеров, чем только в IE.

В любом случае, вы идете не в том направлении, чтобы решить «проблему». Технически невозможно надежно аннулировать сеанс, когда пользователь нажимает кнопку возврата. Кроме того, я не уверен, как вы обычно просматриваете Интернет, но я почти уверен, что аннулирование сеанса при нажатии кнопки «Назад» удивит среднего посетителя веб-страницы.

Если ваша конкретная проблема заключается в том, что вы хотите запретить конечному пользователю просматривать запрещенную страницу, для которой требуется вход в систему после нажатия кнопки «Назад», то вам нужно просто указать браузеру не кэшировать эти страницы. Здесь подробно ответили: Запретить пользователю видеть ранее посещенную защищенную страницу после выхода из системы

Что касается аннулирования сеанса, также когда пользователь физически закрывает браузер, это технически также ненадежно возможно. Обычный подход заключается в том, чтобы просто сохранять время ожидания сеанса относительно коротким, например, 1 минуту, и вводить опрос ajax, который каждые 55 секунд отправляет запрос на сервер для поддержания сеанса в живых. Здесь подробно дан ответ: JSF - поддерживать сеанс в течение неопределенного периода времени

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