如何防止用户重复提交表单
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不同,它只是阻断了后续的提交,这样无论你提交多少
次,都好像提交了一次。
用户重复提交表单,在某些场合会产生非常严重的后果,比如说,在使用信用卡进行在线支付的时候,如果服务器的效应速度太慢,用户用可能重复点击提交按钮,那么就可
能造成用户的信用卡被多次扣钱,所以,重复提交表单会对你的系统逻辑带来影响,必须采取措施防止这种情况的产生。
2.用户重复提交表单的原因?
①重复点击了提交按钮; ②提交表单后点击了页面刷新按钮。
3.如何防止用户重复提交表单?
Struts2中已经内置了一个可以防止用户重复提交表单的功能。它的工作原理是:让服务器产生一个唯一标记,在服务器和表单里各保存一个这个标记的副本,此后,在用户提
交表单的时候,表单里的标记将随着其他的请求参数一起发给服务器,服务器将收到的标记和它留存的标记进行比较,如果两者匹配,则认为这次提交的表单是有效的,
服务器将对之作出处理并生产新的标记,随后,重复提交表单将会失败,因为服务器已经重置了标记。
Struts2标签中的token标签,可以用来生成独一无二的标记,这个标记必须嵌套在form标签里使用,他会在表单里插入一个隐藏字段并把标记保存到HttpSession对象里,
token标签必须和token或者token Session拦截器配合使用,两个标签都能对token标签进行处理,Token标签遇到重复提交的表单,会返回一个“invalid.token”结果并加上
一个动作级别的错误,Token Session拦截器扩展了Token并提供了一种更复杂的服务,它采取的办法和Token不同,它只是阻断了后续的提交,这样无论你提交多少
次,都好像提交了一次。
相关文章推荐
- 如何防止用户后退重复提交表单
- 如何防止用户重复提交表单
- 防止用户将表单重复提交的方法汇总
- 【转】防止用户通过后退按钮重复提交表单ASP中的response.Buffer,Response.Expires,Response.CacheControl
- 如何防止表单重复提交
- 如何防止表单重复提交
- Struts2如何防止表单重复提交
- dwr防止注册用户重复,并防止表单提交
- 如何防止表单重复提交
- 让框架内的页面跳出框架及如何防止表单重复提交
- php中如何防止表单的重复提交
- 如何防止表单重复提交
- 网页开发之如何防止表单重复提交
- 学习心得之……如何用Tonken防止重复提交表单
- 如何防止表单重复提交
- 【asp.net中如何防止用户重复点击提交按钮】
- 如何防止表单重复提交
- asp.net 防止用户通过后退按钮重复提交表单
- Struts1、2种如何防止表单重复提交和两者的区别
- 非input提交时,如何防止表单重复提交