Перенаправление страницы на пользовательскую страницу вместо значения по умолчанию, говорящего «веб-страница истекла» при использовании кнопки «назад / вперед» - PullRequest
1 голос
/ 02 апреля 2012

Я занят сайтом, на котором есть только одна страница, доступная только после входа в систему: home.jsp. Если пользователь вошел в систему с действительным сеансом, если он нажимает кнопку «Назад» в браузере, он должен быть перенаправлен на login.jsp и снова, если он нажимает кнопку «Вперед» браузера. Он не должен быть в состоянии добраться до home.jsp без входа в систему. Поэтому после некоторых поисков я реализовал:

<%
response.setHeader ( "Cache-Control","no-cache,no-store,must-revalidate");

response.setHeader("Pragma","no-cache");

response.setDateHeader ( "Expires", 0)
%>

На странице home.jsp и после нажатия кнопки «Вперед» говорится, что срок действия веб-страницы истек, но мне нужна моя страница cutom, что-то вроде sessionExpired.jsp, повторяющий вход в систему ...

Пожалуйста, помогите мне как это исправить.

1 Ответ

1 голос
/ 02 апреля 2012

Реализация шаблона Post-Redirect-Get .Таким образом, каждый раз, когда конечный пользователь отправляет (успешный) запрос POST, отправляйте перенаправление на целевую страницу.Таким образом, кнопка «Назад» будет указывать на перенаправленный запрос GET вместо запроса POST (который, очевидно, истек, потому что вы указали браузеру не кэшировать его).

Например, в вашем doPost() методе обработки входа:

User user = userService.find(username, password);

if (user != null) {
    request.getSession().setAttribute("user", user);
    response.sendRedirect("nextpage.jsp"); // Here, you need to send a redirect to landing page after login.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...