Вопрос по java, guice-servlet – Как очистить кеш браузера с помощью Java [duplicate]

0

This question already has an answer here:

Prevent user from seeing previously visited secured page after logout 5 answers

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

                    request.getSession().invalidate();
        response.setHeader("Cache-Control","no-cache"); 
        response.setDateHeader("Expires", 0);
        response.setHeader("Pragma","no-cache"); 
        response.sendRedirect("home.jsp");

Кто-нибудь может сказать мне, где проблема и каково будет решение этой проблемы?

Ваш Ответ

3   ответа
0
<script>
    history.forward();
 </script>

е. Добавьте ниже код на теге

onLoad="if (location.href.indexOf('reload')==-1) location.replace(location.href+'?reload')"

Это решит вашу проблему с кнопкой назад.

Вам нужно обновить страницу, чтобы вступили в силу. Обратите внимание, что обычно сеанс действительно заканчивается только тогда, когда окно браузера закрывается.
После обновления страницы она также не работает user1407310
Я уже использовал это, но я не работал. user1407310
Попробуйте удалить одно значение, используя метод session.removeValue (). передавая строковый идентификатор значения, которое нужно удалить. попробуй д дай мне знать
Нет, это также не работает user1407310
1

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

0

     //...
     response.setHeader("Cache-Control","no-cache"); //Forces caches to obtain a new copy of the page from the origin server
     response.setHeader("Cache-Control","no-store"); //Directs caches not to store the page under any circumstance
     response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
     response.setHeader("Pragma","no-cache"); //HTTP 1.0 backward compatibility

     //can check userId or something likes this.In this sample, i checked with userName.
     String userName = (String) session.getAttribute("User");
     if (null == userName) {
         request.setAttribute("Error", "Session has ended.  Please login.");
         RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
         rd.forward(request, response);
    }

Похожие вопросы