要防止表单重复提交,就要标识用户的每一次访问请求,似的每一次访问对服务器端来说都是唯一确定的。为了标识用户的每次访问请求,可以在用户请求一个表单域时增加一个隐藏表单项,这个表单项的值每次都是唯一的token。如:
<form id="form1" ,metho="POST">
<input type="hidden" name="test_token" value="1111" />
</form>
当用户请求时生成这个唯一的token,并将这个token保存在用户的session中,等用户提交请求时检查这个token和当前的Session中保存的token是否一致,如果一致则说明没有重复提交。
其实简单处理,不考虑URL攻击之类的问题的话,可以控制提交按钮,按钮点击之后不能再点击也可以防止重复提交,当然这种只是限制老老实实的用户