问题背景:当在注册时,触发了一次注册提交后,出现网络延迟或卡顿时,用户就会下意识的狂点注册按钮,这时问题就来了,多次提交后后台直接将提交的数据在数据库进行保存。
---这其实就是个非法操作。
-->解决方案:
生成一个令牌。
在session域中保存令牌。
在表单中隐藏字段保存令牌。
当表单提交时,在处理的Servlet里检查,如果提交的令牌和session中保存的令牌一致,则执行逻辑,并删除session中的令牌。
如果session域中没有令牌,或和提交的令牌不符合,则认为是表单重复提交,提示。
jsp中设置代码保存令牌—我们此处用随机数作为令牌:
在servlet中检查: