请求转发下刷新页面重复提交原因_javaWEB解决表单重复提交的问题(原理)

本文探讨了表单重复提交的问题,包括在响应页面刷新、多次点击提交按钮以及点击返回后再提交等场景。提出了通过在表单中设置唯一标记,并在Servlet中验证该标记来避免重复提交的方法。具体实现包括生成随机值token,存入session,并在提交时比较session和隐藏域中的token,确保一致性。若一致则处理请求并清除session中的token,否则提示用户防止重复提交。
摘要由CSDN通过智能技术生成

javaWEB解决表单重复提交的问题(原理)

表单的重复提交    1> 重复提交的情况:             1> 在表单提交到一个Servlet,而Servlet又通过请求转发的方式响应了一个JSP(HTML)页面,            此时地址栏还保留着Servlet的那个路径,在响应页面点击“刷新”,这就是一个重复提交的情况。             2> 在响应页面没有到达时,重复点击提交按钮。             3> 点击返回,再点击提交。    2> 不是重复提交的情况:点击“返回”,“刷新”原页面,在“提交”    3> 如何避免表单的重复提交:        在表单中做一个标记,提交到Servlet时,检查标记是否存在且是否和预定义的标记一致,若一致,则受理请求,        并销毁标记,若不一致或没有标记,则直接响应提示信息:"重复提交";        解决:把标记放在session中,可以!        1> 在原表单页面,生成一个随机值 token        2> 在原表单页面,把token值放入session 属性中        3> 在元表单页面,把token值放入到隐藏域中。        4> 在目标的Servlet 中:获取session 和隐藏域中的token值        5> 比较两个值是否一致:若一致,受理请求,且把session域中的token属性清除        6> 若不一致,则直接响应提示页面:"重复提交"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值