`

防止表单数据重复提交

阅读更多
struts1.x防止表单数据重复提交的原理是:当首次进入表单页面时,在action中生成一个随机数,调用this.saveToken(request)方法,保存到session中,当action跳转到表单页面时在页面上设置一个hidden域,value为生成的随机数,随着表单一起提交。在表单提交的action中对token的值进行比较。调用isTokenValid(request)方法。该方法对session中保存的token值和页面hidden中传递的值进行比较。如果相等判断为不是重复提交,否者判断为重复提交。

注意:表单jsp页面的form必须是struts的<html:form></html:form>否者不会再页面自动生成hidden域,如果提交的话会一直判断为重复提交。


根据以上原理:可以自己实现防止页面重复提交。
(1)当用户登录时再session中设置一个attribute,该attribute的值尽量要保持唯一性。
(2)再需要提交表单数据的页面自己手写一个hidden域,value为第一步设置的值。
(3)提交表单,判断传递的hidden域与session中的attribute是否相等。相等则返回true,同时修改session中attribute的值。(该值得生成可以自己定义生成规则,但是要尽量确保唯一)。
分享到:
评论

相关推荐

    springboot2.1+redis+拦截器 防止表单重复提交

    springboot2.1+redis+拦截器 防止表单重复提交详细完整介绍,所用到的文件都上传了,下载即可使用。自己花了半天整理,并且测试通过,使用在实际项目中的,希望对每一个下载的朋友有帮助。

    java实现防止表单重复提交

    服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...

    Struts2防止表单重复提交

    当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...

    修改禁止多次重复提交

    如何修改禁止多次重复提交

    struts数据回显、模型驱动、防止表单重复提交

    struts数据回显、模型驱动、防止表单重复提交

    SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器

    SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器

    PHP实现防止表单重复提交功能【基于token验证】

    主要介绍了PHP实现防止表单重复提交功能,结合实例形式分析了php基于token验证防止表单重复提交的相关操作技巧,非常简单实用,需要的朋友可以参考下

    Java怎样防止重复提交

    防止重复提交java解决  B/S结构的软件开发中,特别是在越大型的分布式应用中体现的越明显,后端的处理往往会因为出现较多的时间消耗而引起延迟,这种延迟有可能过长而终使用户认为是自己的操作错误,导致他们重新...

    php中如何防止表单的重复提交

    在php中如何防止表单的重复提交?其实也有几种解决方法。下面小编就为大家介绍一下吧。需要的朋友可以过来参考下

    Java表单重复提交的避免方法

    如何避免表单重复提交,这篇文章就为大家详细介绍了Java表单重复提交的避免方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    ThinkPHP防止重复提交表单的方法实例分析

    本文实例总结分析了ThinkPHP防止重复提交表单的方法。分享给大家供大家参考,具体如下: 为什么会有表单重复的坑 在开发中,如果一个新增或修改的表单,在后台完成数据库操作后我们设定的不是跳转到其他页面,还是...

    php通过记录IP来防止表单重复提交方法分析

    这个原理比较的简单就是用户第一次提交时我们记录提交用户的IP地址,这样如果用户在固定时间内再次提交表单就会提示重复提交了,这种做法通常用于在顶一下,支持一下这种应用中了,在防止数据重复提交是一个非常不好的...

    PHP防止表单重复提交的几种常用方法汇总

    本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值。具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单...

    js防止表单重复提交实现代码

    重复提交、重复刷新、防止后退等等都是属于系统为避免重复记录而需要解决的问题,在客户端去处理需要针对每一种的可能提出相应的解决方案,然而在服务器端看来只不过是对于数据真实性的检验问题

    防止Layui form表单重复提交的实现方法

    在提交表单数据时,提交按钮为 submit 类型,以layui为js框架时,会重复提交表单数据,为防止这一情况,有效的做法是: 在&lt;form&gt;里面,加上 lay-filter=”formConfig” , οnsubmit=”return false” , 其中 ...

    ThinkPHP 防止表单重复提交的方法

    用户提交表单以后,点击浏览器后退按钮返回表单页面,这个时候浏览器会直接从缓存中取出页面,因此token验证一定是通不过的。 网上有许多种办法可以绕过这个问题,比如用location.replace()方法来替换当前历史记录,...

    clockSubmit:防止异步重复提交数据

    这是一个防止重复提交Form表单的小插件; [removed][removed] 调用方式1: //多次点击添加按钮 $("add").click(function(){ // 表示锁定1000毫秒,填写默认也是1000毫秒 if ( clockSubmit('sign', 1000) ) { ...

    解决vue 按钮多次点击重复提交数据问题

    主要介绍了vue 按钮多次点击重复提交数据的问题,本文通过实例结合的形式给大家介绍的非常详细,需要的朋友可以参考下

    前端防止用户重复提交js实现代码示例

    前端在向后端进行数据提交的时候,通常会需要在第一次提交返回前,阻止用户在快速点击发送二次请求,即防止重复提交,最简单的方法是使用标志参数或者 class 元素控制,但缺点是,每个控制重复提交的地方都需要加上...

    PHP防止刷新重复提交页面的示例代码

    作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢? PHP防止刷新重复提交,通过不断刷新...

Global site tag (gtag.js) - Google Analytics