您的位置:首页 > 其它

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

2013-08-26 11:09 363 查看
1.用户重复提交表单可能产生的后果?

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

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

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

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

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

Struts2标签中的token标签,可以用来生成独一无二的标记,这个标记必须嵌套在form标签里使用,他会在表单里插入一个隐藏字段并把标记保存到HttpSession对象里,
token标签必须和token或者token Session拦截器配合使用,两个标签都能对token标签进行处理,Token标签遇到重复提交的表单,会返回一个“invalid.token”结果并加上
一个动作级别的错误,Token Session拦截器扩展了Token并提供了一种更复杂的服务,它采取的办法和Token不同,它只是阻断了后续的提交,这样无论你提交多少
次,都好像提交了一次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: