表单重复提交

来源:互联网 发布:企业注册域名 编辑:程序博客网 时间:2024/06/16 16:18

【1】提交完表单以后,不做其他操作,直接刷新页面,表单会提交多次

原因是,Servlet处理完请求以后,直接转发到目标页面
这样整一个业务,只发送了一次请求,那么当你在浏览器中点击刷新按钮或者狂按f5会一直都会刷新之前的请求
解决方案:使用重定向跳转到目标页面

【2】点击提交按钮多次,这种情况也会导致表单重复提交

解决方案:使提交按钮只能点击一次。这得通过js来完成(疑惑:大网站如何解决提交按钮的

【3】表单提交成功以后,直接点击浏览器上回退按钮,不刷新页面,然后点击提交按钮再次提交表单

产生的原因:因为服务器在处理请求时,不会检查是否为重复提交的请求。
解决方案:使用一个token的机制
- 服务器在处理请求之前先来检查浏览器的token。
- token由服务器来创建,并交给浏览器,浏览器在向服务器发送请求时需要带着这个token
- 服务器处理请求前检查token是否正确,如果正确,则正常处理,否则返回一个错误页面
- 服务器所创建的token只能使用一次
- token一般使用一个唯一的标识
原创粉丝点击