2012-05-21 3 views
0

Я работаю над Jsp-сервлетом. У меня есть 3 jsp pages.one для входа в систему, после успешного входа в систему он покажет сотрудникам свои записи и затем выйдет из системы. Так что моя проблема была после выхода из системы, когда я нажимаю кнопку «Назад», она будет отображать записи сотрудника, чтобы я отключил кнопку «Назад» и очистил кеш . и перенаправить его на страницу входа в системуНазад Кнопка в jsp перенаправляется на страницу входа без выхода

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

ответ

1

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

response.setHeader("Cache-Control","no-cache"); 

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

0

Когда мы нажимаем кнопку «Назад», сеанс не отменяется. Это не из-за кеширования (попробуйте распечатать дату на странице, где отображается панель инструментов Employee. Каждый раз, когда мы нажимаем кнопку «вперед», новый запрос отправляется на сервер).

Я добавил: response.setHeader («Cache-Control», «private, no-store, no-cache, must-revalidate»); response.setHeader («Pragma», «no-cache»); response.setDateHeader («Истекает», 0); но это не тренировка.

Возможно, вам нужно будет добавить скрипт java для отключения вашей кнопки возврата (клиент может отключить js, а не решение) или другим решением будет добавить условие в ваш первый jsp, т. Е. Эта форма будет отображаться только тогда, когда имя пользователя (или любой атрибут, который вы используете) в сеансе равно null.

Если вы нажмете кнопку «Назад», то есть если сеанс не был аннулирован, имя пользователя все еще существует, и вы можете просто отобразить того, кто уже зарегистрировался, и предоставить там кнопку выхода.

Или вы можете проверить параметр session в LoginPage jsp для sessionAttribute, а не null invalidate session.

-1
<script> 

$(document).ready(function() { 
    function disableBack() { window.history.forward() } 

    window.onload = disableBack(); 
    window.onpageshow = function(evt) { if (evt.persisted) disableBack() } 
}); 
</script> 

Мы можем отключить обратную клавишу, используя java-скрипт только на этой странице jsp.

+0

это не правильное решение ... – bitoiu

+0

Затем для правильного решения вам необходимо его проверить, используя сеанс. –

Смежные вопросы