使用token防止表单重复提交。

1、表单重复提交的危害这里就不多说了,防止的方法有重定向,前端js等等,这里只介绍使用token。
2、准备代码

可以看到go请求就是到达表单页面同时生成利用UUID生成token存到session当中(当然也可以存到redis中)。submit则取出session中的token和表单提交过来的token作比较,如果一直则移除session当中的token,否则就是重复提交表单。
3、前端代码
login.html页面

ok.html页面

4、测试



可以看到控制台什么都没有打印,接着我们点击刷新按钮。


5、其中还有一个疑问点,如果我们点击回退按钮,浏览器会不会重新发送go请求呢?如果会的话,控制就会打印 回到了表单页面 这句话说明回退进行了刷新,那么就会重新生成token,又能够进行表单提交了。反之则不会打印 回到了表单页面 这句话,接下来我们进行验证。


可以发现没有打印 回到了表单页面 这句话,则证明回退并不会重新发送go请求并且没有生成新的token。这时我们点击提交表单,看下图:

这样上述的理论就得到了验证。

防止表单重复提交token相关推荐

  1. SpringMVC中实现的token,防表单重复提交

    一:首先创建一个token处理类  ,这里的类名叫 TokenHandler private static Logger logger = Logger.getLogger(TokenHandler. ...

  2. JavaWeb 如何防止表单重复提交 - 使用Token,令牌

    JavaWeb 如何防止表单重复提交 - 使用Token,令牌 说到重复提交 ,应该想到两种场景: 1. 在下单,或者支付 这种情况 那么不允许  刷新,不允许后退再点击提交(后退之后提交会失败,修改 ...

  3. php token 表单重复提交,PHP生成token防止表单重复提交2个例子

    防止表单重复提交的解决方案非常的简单,我们下面两个例子都是生成一个随机的token验证用户是不是由我们站内提交并且进行重复验证即可实现了. 在网上搜索了一下有很多站长都这样说的 1.提交按钮置disa ...

  4. python表单防重复提交_关于PHP使用token防止表单重复提交的方法

    这篇文章主要介绍了PHP使用token防止表单重复提交的方法,通过生成一个加密后的随机数存入session的token变量,同时将该值放入表单隐藏提交,达到防止表单重复提交的功能,需要的朋友可以参考下 ...

  5. struts2 自带的 token防止表单重复提交拦截器

    在struts2中,我们可以利用struts2自带的token拦截器轻松实现防止表单重复提交功能! 1. 在相应的action配置中增加:  <interceptor-ref name=&quo ...

  6. token防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  7. springboot 订单重复提交_Spring Boot (一) 校验表单重复提交

    一.前言 在某些情况下,由于网速慢,用户操作有误(连续点击两下提交按钮),页面卡顿等原因,可能会出现表单数据重复提交造成数据库保存多条重复数据. 存在如上问题可以交给前端解决,判断多长时间内不能再次点 ...

  8. 使用Struts2防止表单重复提交

    用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...

  9. Struts2防止表单重复提交

    最近开发中涉及到了表单重复提次的问题,通过研究做个总结. 防止表单重复提交主要用的到标签是<s: token />,拦截器 <interceptor-ref name="t ...

  10. 12、Struts2表单重复提交

    什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...

最新文章

  1. SpringBoot第二十五篇:2小时学会springboot
  2. 谁动了我的内存之PHP内存溢出
  3. order by居然不能直接在union子句中使用
  4. Java 微服务框架对比:Dubbo 和 Spring Cloud
  5. 瑞波基因币靠谱吗_Fil币小矿工: IPFS国家认可吗?IPFS是靠谱项目吗?
  6. 隐私模型:k-anonymity l-diversity t-closeness介绍
  7. linux opencv调用笔记本摄像头,Linux下利用Opencv打开笔记本摄像头问题
  8. catia二次开发:函数
  9. 官网USB读卡器移植(TF卡SDIO模式 + SPI-flash)
  10. 谷歌搜索通告:疫情期间不要关站会影响网站排名
  11. java中父类创建子类的语法_Java 语言中,所创建的子类都应有一个父类。( )_学小易找答案...
  12. 中国综合社会调查调查数据(CGSS)
  13. Web开发人员月报2018年9月
  14. Super Resolve Dynamic Scene from Continuous Spike Streams
  15. ROS理论与实践——赵虚左Autolabor
  16. 200行Perl 语言实现 VCD 转ATE测试pattern ---VCD的解析
  17. 蝙组词两个字理测试html,蝙的两字组词,蝙组词两个字
  18. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)
  19. 游戏策划师概率论笔试面试知识总结
  20. 【Pyecharts】| 风电场运维可视化系统 | 文末送书

热门文章

  1. 华为云influxdb+grafana+ prometheus安装和如何外网访问华为云+java环境安装配置+jmeter安装配置+Jmeter后端监听器+非GUI执行jmeter脚本
  2. Python爬虫编程思想(82):管理SQLite数据库
  3. 2018年面经大合集
  4. 如何用js实现数组倒序输出
  5. 聂微东:《暗时间》读书笔记与读后感 - 博客 - 伯乐在线
  6. 怎么把原本一页的PDF拆分成单独的两页?
  7. 如何进行EMC Symmetrix (DMX或者VMAX)的系统健康检查
  8. [生存志] 第26节 历代大事件概览 明朝
  9. BAT添加共享打印机
  10. 关于安装软件时x86 ,x64,x86_64,ARM 64, ARM 32 的选择