Почему session.invalidate не работает в браузере IE? - PullRequest
0 голосов
/ 26 октября 2010

Я внедрил фильтр sevlet в свое приложение, и в этом фильтре, если я найду какой-то определенный шаблон URL, я буду использовать request.getSession (). Invalidate (), чтобы выйти из системы и очистить сеанс, а затем перенаправить на страницу входа. .

session.invalidate();
session.setAttribute("hi", true);
response.sendRedirect("login.jsp");

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

Так можно ли позволить мне полностью очистить сеанс и просто запустить новый экземпляр IE? (BTY, мой код работает в FF и Chrome).

Ответы [ 3 ]

1 голос
/ 26 октября 2010

Сессия - это концепция на стороне сервера. Браузер содержит только jsessionid, чтобы сообщить серверу, какой объект сеанса выбрать для этого запроса.

Тем не менее, ваша проблема не в IE. И даже если это так, это своего рода кеширование, с которым вы сталкиваетесь. Очистите кеш. Вы можете установить эти заголовки ответа:

Cache-Control: no-cache, no-store
Pragma: no-cache
0 голосов
/ 09 августа 2016

Я знаю, что это старый пост.Но в последнее время у меня та же проблема.

Я пытаюсь session.invalidate () .... и не работает.Я пытаюсь удалить куки и не работает ...

Проблема была в кеше Internet Explorer .. Я просто не помещал заголовки кеша в свой ответ serlevt, а затем работает для меня.

Пример кода:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setHeader("Cache-Control","no-store"); //HTTP 1.1 
    response.setHeader("Pragma","no-cache"); //HTTP 1.0 
    response.setDateHeader ("Expires", 0);
    ......
    ......
    response.response.getWriter().print(json);

}

0 голосов
/ 26 октября 2010

@ Божо быстрый вопрос, чтобы уточнить.В JSP создан объект импликации сеанса по умолчанию.Здесь, в этом случае, он создал сеанс и затем делает недействительным, после аннулирования он устанавливает атрибуты, которые снова используют неявный созданный сеанс.

...