防止重复提交的几种办法


重定向

提交操作完成后,将请求重定向到一个只读操作,此后无论客户端如何刷新页面,发送的都是只读操作的请求。

副作用

页面初始化时生成随机码,提交操作后删除随机码,然后在服务端进行判断,如果请求中随机码为空,则认为重复提交。

令牌

生成form页面之前在session中保存一个随机生成的token,并写入到form中的隐藏域。

然后在提交时进行判断:如果token与session中的相同,则为首次提交,此时删除session中的token,否则一律为非正常提交。

UI

提交后禁用提交按钮

数据库

数据库添加约束,禁止重复数据