У меня есть около 30 страниц jsp с входом и выходом из системы. Я поместил все страницы в сеанс, так что доступ может иметь только действительный пользователь. Теперь проблема в том, что всякий раз, когда пользователь выходит из системы, сеанс становится недействительным, но если пользователь нажимает кнопку «Назад» в браузере, он все равно отображает защищенные страницы (которые не должны отображаться).
Я узнал, что проблема была с браузером, который хранит кеш и историю. Поэтому я применил response.setheader("cache-control",.....)
и т. д. на защищенных страницах, а также window.history.go(+1)
в теле защищенных страниц.
В какой-то степени он работает нормально, но время от времени отображает защищенные страницы. А также после того, как пользователь войдет в сессию, и когда он будет внутри веб-сайта, кнопка «Назад» должна работать для него без каких-либо хлопот (без запроса пользователя на повторную отправку данных формы). Как только он выйдет из системы, сеанс должен завершиться, и он больше не сможет получить доступ к страницам, нажав кнопку «Назад». Есть ли способ добиться этого?
1 ответ
1 Для проверки подлинности пользователя не используйте код на jsp. У нас есть Filter
только для этого используйте его.
2 Сделайте свой Filter
сделать следующее, чтобы решить проблему кэширования
HttpServletResponse hsr = (HttpServletResponse) response;
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
hsr.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);
3 Удалить JavaScript
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.