2012-05-08 2 views
2

Перед лицом странной проблемы. мой выход из системы код, как:После того, как вы нажмете кнопку «Назад», сеанс не уничтожит

@RequestMapping(value = "/logout", method = RequestMethod.GET) 
    public String thanks(HttpSession session) { 
     session.removeAttribute("parentEmail"); 
     session.invalidate(); 
     return "redirect:parent-login"; 
    } 

но после выхода из системы я получаю ссылку как /[email protected]

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

Может кто-нибудь сказать мне, почему я получаю этот URL.

+0

Есть ли у вас соответствующие директивы chaching в вашем HTML-коде? – home

+0

Ваша страница может включать в себя объекты (изображения, фреймы и т. Д.), Которые загружаются после отображения вашей страницы и повторной инициализации сеанса, который вы только что сделали недействительным. – Twilite

ответ

1

По умолчанию все атрибуты модели считаются отображаемыми как переменные шаблона URI URL-адреса переадресации. Из остальных атрибутов типы, которые являются примитивными типами или наборами/массивами примитивных типов , автоматически добавляются в качестве параметров запроса.

использовать redirectAttributes.addAttribute() для добавления требуемых параметров запроса. Вы также должны аннулировать любой объект, связанный с проверкой, из ModelMap, установив этот объект null model.addAttribute ("parentLogin", null);

Таким образом, ваш метод должен выглядеть следующим образом:

@RequestMapping(value = "/logout", method = RequestMethod.GET) 
public String thanks(Model model,RedirectAttributes redirectAttributes,HttpSession session) { 
redirectAttributes.addAttribute("logout", "1234"); 
model.addAttribute("parentLogin",null); 
session.removeAttribute("parentEmail"); 
session.invalidate(); 
return "redirect:parent-login"; 
} 
Смежные вопросы