Вы, вероятно, просматриваете страницу, которая обслуживается из кэша браузера.Вам необходимо добавить заголовки HTTP-ответа, которые инструктируют веб-браузеру не кэшировать динамические страницы.Вы можете сделать это с javax.servlet.Filter
, который сопоставлен с <url-pattern>
интересами, например, *.jsf
или чем-то еще, и выполняет следующую методику в doFilter()
методе:
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache,no-store,must-revalidate"); // HTTP 1.1
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0
httpResponse.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);
Не забудьтеочистить кеш браузера перед тестированием;)
Не связанная с проблемой, проверка на нуль if (session != null)
в вашем коде является излишней, поскольку сессия никогда не может быть нулевой, когда она достигает этой проверки на нуль.Если бы он был нулевым, он бросил бы NullPointerException
при вызове removeAttribute()
и, таким образом, никогда не достиг бы нулевой проверки.