Session 防止表单重复提交

问题背景:当在注册时,触发了一次注册提交后,出现网络延迟或卡顿时,用户就会下意识的狂点注册按钮,这时问题就来了,多次提交后后台直接将提交的数据在数据库进行保存。

     ---这其实就是个非法操作。

 

-->解决方案:

  生成一个令牌。

  在session域中保存令牌。

  在表单中隐藏字段保存令牌。

  当表单提交时,在处理的Servlet里检查,如果提交的令牌和session中保存的令牌一致,则执行逻辑,并删除session中的令牌。

  如果session域中没有令牌,或和提交的令牌不符合,则认为是表单重复提交,提示。

 

  jsp中设置代码保存令牌我们此处用随机数作为令牌:

  

  在servlet中检查:

  

posted @ 2017-05-27 18:36  大大大圣  阅读(732)  评论(0编辑  收藏  举报