springmvc防止重复提交 (spring3.1版本以后)

第一种办法就是目前网上比较多的说法:
     可以使用自定义token每次绑定一个随机数,放到一个隐藏域,同时绑定到session中,每次注册前比较数字是否一样,注册后绑定一个新数字,如果一样则说明session中的token一样,则提交,否则不能提交,还有使用拦截器的,本质类似struts2的token令牌,但是比起struts2的使用方式要麻烦点,我只用过struts2的token令牌,然后看了下springmvc的,发现太过于繁琐,网上找了下,可以使用第二种方式:

带参数重定向--RedirectAttributes

用户保存或修改后,为了防止用户刷新浏览器(F5)导致表单重复提交,一般在保存或修改操作之后会redirect到一个结果页面(不是forward),同时携带参数,如操作成功的提示信息。因为是Redirect,Request里的attribute不会传递过去。Spring在3.1才提供了这个能力--RedirectAttributes。 反复按F5,操作成功的提示信息也不会再次出来(总共只出现一次),效果很理想。

  

public String save(@ModelAttribute("group") Group group, RedirectAttributes redirectAttributes) {
    accountManager.saveGroup(group);
    redirectAttributes.addFlashAttribute("save", "注册成功");    return "redirect:/success.jsp";
}


你可能感兴趣的:(springMVC,重复提交,token)