按下后退按钮会话不会破坏

时间:2012-05-08 07:39:28

标签: java spring hibernate jsp session

我正面临着一个奇怪的问题。 我的注销代码如下:

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

但退出后我得到/logout?email=xyz@xyz.com

的链接

所以当我在上次访问的页面上再次按下按钮时,可以更新数据。 我已将电子邮件设置为会话属性。

有人可以告诉我为什么要获取此网址。

1 个答案:

答案 0 :(得分:1)

  

默认情况下,所有模型属性都被视为URI   重定向URL中的模板变量。剩下的属性   那些是原始类型或集合/原始数组   类型会自动附加为查询参数。

使用redirectAttributes.addAttribute()附加所需的查询参数。 您还应该通过将该对象设置为null来使ModelMap中的任何与身份验证相关的对象无效  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";
}