我想看看Web开发人员如何避免双重提交问题。基本上我对这个问题的理解如下:
当不耐烦的用户多次提交表单时会发生双重提交,从而导致问题。这个问题可以通过JavaScript(特别是jQuery脚本)修复,这些脚本在提交表单后禁用了提交按钮 – 这样做的一个缺点就是客户端禁用了JavaScript。
还有服务器端检测方法。
所以我的问题是:
人们如何克服双重提交?
什么是双重提交引起的问题的真实例子?
任何Web应用程序框架都内置了双重提交工具吗?
解决方法
如果您正在使用java服务器端脚本并使用struts 2,那么您可以参考此链接,该链接讨论使用令牌。
http://www.xinotes.org/notes/note/369/
当请求与令牌第一次一起提交时,应该生成一个令牌并保存在初始页面呈现的会话中,在struts动作中运行一个线程名称作为令牌ID的线程并运行逻辑,无论客户端具有什么请求,当客户端再次提交相同的请求时,检查线程是否仍在运行(thread.getcurrentthread()。中断)如果仍在运行,则发送客户端重定向503。
请查看struts 2code的ExecuteAndWaitInterceptor,这个结合token的逻辑将有助于快速点击