Spring MVC如何防止重复提交?类似Struts Token机制!

转载 2011年01月24日 11:17:00

首先,需要将继承了SimpleFormController之类的sessionForm设为true。这样,在显示一个新表单时,Spring会将command存放在session中,而在提交表单时,Spring会从session中取出此command,随后立即从session中删除存放command的attribute。如果发现在session中没有command,Spring将其断定为重复提交,转而执行handleInvalidSubmit(request, response),可覆盖此方法负责防止重复提交的任务。可以这么说,当setSessionForm(true)之后,如果没有先后经历显示表单、提交表单的过程,就会被认为是重复提交表单。而有一些情况下却必须重复提交表单,如,修改数据库的数据后,试图写入数据库时因某些异常失败,如果此时异常被当前页面捕获并依旧返回当前页面,由于command已经被Spring在后台从session中移走,因此,就被认为是无效重复提交,从而导致第二次经修改后的记录无法正确提交到数据库中。handleInvalidSubmit()必须考虑到这种情况。

-------------------------------------------------------------------------------------------------

方法2

楼上提供的方法比较麻烦。
我在项目中使用过一种比较简单的方法,就是使用一个Filter,设置request的参数,使禁止Browser对页面进行缓存,通过这种变通的方式来解决。

相关文章推荐

不用struts2的token机制,手动防止表单数据重复提交

struts2的拦截器实现了防止表单重复提交的功能,即token拦截器,在表单提交页面写上,在struts.xml配置文件中相应的action上配置拦截器 此拦截器只能用在有form的提交请求上。如...

Spring MVC拦截器+注解方式实现防止表单重复提交

Spring MVC拦截器+注解方式实现防止表单重复提交

Spring MVC拦截器+注解方式实现防止表单重复提交

转:http://blog.csdn.net/dongpy1111/article/details/45149507 转载自https://m.oschina.net/blog/...

Spring MVC防止数据重复提交

这个Bug的具体情况是这样的,就是在上传视频后,会将数据提交到服务器,而当提交数据后点击浏览器的后退按扭,却又可以再次提交!这显示是不符合逻辑的,造成了数据重复提交。 好的,下面来讲一下如何在Spr...

Spring MVC防止数据重复提交

下面来讲一下如何在Spring MVC里面解决此问题(其它框架也一样,逻辑一样,思想一样,和具体框架没什么关系)。要解决重复提交,有很多办法,比如说在提交完成后redirect一下,也可以用本文提到的...

Spring MVC防止数据重复提交

就在昨天,我做的爱酷学习网出了一个严重的Bug。感谢发现此Bug的朋友“周大圣”,同时也感谢你能花时间为爱酷学习网上传视频! 这个Bug的具体情况是这样的,就是在上传视频后,会将数据提交到服务器...

spring mvc 通过redirect重定向防止刷新页面重复提交又能返回数据给前台页面

@RequestMapping(value = "/add") public String toAdd(HttpServletRequest request) { HttpSession se...

Spring MVC拦截器+注解方式实现防止表单重复提交

 原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。 1.新建注解: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)