如何防止用户重复提交表单

1.用户重复提交表单可能产生的后果?

用户重复提交表单,在某些场合会产生非常严重的后果,比如说,在使用信用卡进行在线支付的时候,如果服务器的效应速度太慢,用户用可能重复点击提交按钮,那么就可 能造成用户的信用卡被多次扣钱,所以,重复提交表单会对你的系统逻辑带来影响,必须采取措施防止这种情况的产生。

2.用户重复提交表单的原因?

①重复点击了提交按钮;  ②提交表单后点击了页面刷新按钮。

3.如何防止用户重复提交表单?

Struts2中已经内置了一个可以防止用户重复提交表单的功能。它的工作原理是:让服务器产生一个唯一标记,在服务器和表单里各保存一个这个标记的副本,此后,在用户提 交表单的时候,表单里的标记将随着其他的请求参数一起发给服务器,服务器将收到的标记和它留存的标记进行比较,如果两者匹配,则认为这次提交的表单是有效的, 服务器将对之作出处理并生产新的标记,随后,重复提交表单将会失败,因为服务器已经重置了标记。

Struts2标签中的token标签,可以用来生成独一无二的标记,这个标记必须嵌套在form标签里使用,他会在表单里插入一个隐藏字段并把标记保存到HttpSession对象里, token标签必须和token或者token Session拦截器配合使用,两个标签都能对token标签进行处理,Token标签遇到重复提交的表单,会返回一个“invalid.token”结果并加上 一个动作级别的错误,Token Session拦截器扩展了Token并提供了一种更复杂的服务,它采取的办法和Token不同,它只是阻断了后续的提交,这样无论你提交多少 次,都好像提交了一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值