一点拙见,仅供参考:
1.提示并跳转到指定页面,防止重复提交页面,(跳转到其他页面时会防止后退键的使用)代码:out.print("<script>alert('Success(确认提交)!');window.location.href='show.aspx';</script>");
2.直接从新转到本页代码: response.sendRedirect(Request.Url.ToString());
3.按钮提交后将其变为灰色
4.插入之前可以在数据库中先判断是否有相同的记录,主键除外。
方法很多如果用struts的话有一个token 。或者在页面放一个隐藏的表单再或者用div当点击提交的时候直接锁屏
使用Struts的Token机制解决表单的重复提交
Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
这时其实也就是两点,第一:你需要在请求中有这个令牌值,请求中的令牌值如何保存,其实就和我们平时在页面中保存一些信息是一样的,通过隐藏字段来保存,保存的形式如: 〈input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="6aa35341f25184fd996c4c918255c3ae"〉,这个value是TokenProcessor类中的generateToken()获得的,是根据当前用户的session id和当前时间的long值来计算的。第二:在客户端提交后,我们要根据判断在请求中包含的值是否和服务器的令牌一致,因为服务器每次提交都会生成新的Token,所以,如果是重复提交,客户端的Token值和服务器端的Token值就会不一致。下面就以在数据库中插入一条数据来说明如何防止重复提交。
分享到:
相关推荐
Asp.net防止页面被多次提交
同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个信息.rar同一个页面提交多个...
防卡页面刷新重复提交源代码,根据msdn上提供方法进行改造,解决了诸多bug,实用性很强
主要介绍了Asp.net中阻止页面按钮多次提交的解决办法的相关资料,需要的朋友可以参考下
js 特效 html 特效 同一页面的多个提交信息 js 特效 html 特效 同一页面的多个提交信息
它的原理是:asp.net页面提交的时候会调用ValidatorOnSubmit方法(内置的),我们利用js方法的覆盖特性,把系统内置的ValidatorOnSubmit替换成我们的版本,然后当执行ValidatorOnSubmit时屏蔽掉页面上所有提交按钮...
联系表格7防止多次提交WordPress插件 通过enablinig这个插件,当Contact Form 7仍在提交导致多次相同提交通过的表单时,它可以防止双击。 对于联系表7版本4.9或更高版本。 安装 通过此存储库下载此插件-单击“克隆或...
如果网页速度过慢或者其他原因,用户多次提交能导致数据的修改,怎么解决这个问题呢? 这段是放在 Page_Load 中 代码如下: if(!Page.IsPostBack) { System.Text.StringBuilder s = new System.Text.StringBuilder();...
主要介绍了vue 按钮多次点击重复提交数据的问题,本文通过实例结合的形式给大家介绍的非常详细,需要的朋友可以参考下
layui一个页面使用多个文件upload上传按钮
第一次提交可以,第二次提交就没有任何响应了。需要重新加载页面后才可以提交,而这个问题在Firefox,IE下没有出现。 马上Google了一下发现这是webkit内核浏览器的共有特性,这样做是为了防止表
对“添加”、“提交”、“保存”、“更新”等按钮需要对数据库进行写操作的按钮,一定要在页面初始化时加载脚本,防止多次重复点击
Asp.net中防止用户多次登录的方法,详细解说,希望大家支持
导致表单重复提交的原因是:第一次提交的表单会被缓存到内存中,直到页面下次提交或页面关闭或转向其他页面时才消失。在自调用返回时,内存中的数据依然在,这时页面中的判断提交的代码依然可以检测到提交的值,顾会...
当要打开新窗口时,不是弹出IE或其他浏览器,在本身的新tab页中是实现。 可以在此基础上进行多次开发,如进行DOM操作,当然做个什么自动化提交之类的也不在话下了。 --包含源码
第一种情况:提交完表单以后,不做其他操作,直接刷新页面,表单会提交多次。 – 在servlet中写一句输出,用来判断是否提交多次 System.out.println(已经插入); request.getRequestDispatcher(/login_success.jsp)...
最近做项目中有多附件上传及信息多次添加功能,其中就遇到了刷新页面导致上次提交的数据重复保存的问题,以下是解决方法,有需要的朋友可以参考一下