Javaweb-表单重复提交情况

表单重复提交有三种常见的情况:

1.提交完表单,服务器使用的是请求转发来进行页面的跳转,那么当表单提交,跳到指定页面后,如果用户不断刷新页面,那么由于使用的是请求转发,那么表单提交的请求将会不断发起,最终造成表单重复提交。

       这种情况的解决办法就是,使用重定向来进行页面跳转。

2.由于网络时延,用户未及时收到服务器响应,随后多次进行提交操作,这种情况也会导致表单重复提交。

3.用户正常提交服务器,服务器及时响应,但是由于在提交完成后,用户回退浏览器,造成重新提交,这也会造成表单重复提交。

情况2、3的解决办法就是使用验证码。为什么使用验证码可以解决情况2、3呢?下面说明一下其原理。

当客户端第一次访问服务器时,获取对应表单信息的时候,服务器会先随机生成一个验证码,然后将这个验证码存在Session域中。当客户端第一次提交表单时,服务器会将Session域中的验证码删除,然后比较提交客户端输入的验证码和其一开始生成验证码是否一致。

之后,若客户端重复提交表单,但是由于服务器已经将Session中对应的验证码删除,那么服务器此时就可以知道,这个表单是重复提交了,不应该进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值