前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaWeb防止表单重复提交的几种方式

JavaWeb防止表单重复提交的几种方式

作者头像
全栈程序员站长
发布于 2022-08-04 09:00:06
发布于 2022-08-04 09:00:06
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

一、表单重复提交的常见应用场景

  1. 网络延迟的情况下用户多次点击submit按钮导致表单重复提交
  2. 用户提交表单后,点击【刷新】按钮导致表单重复提交(点击浏览器的刷新按钮,就是把浏览器上次做的事情再做一次,因为这样也会导致表单重复提交)
  3. 用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交 二、防止防止表单重复提交的方式 1、利用JavaScript防止表单重复提交 (1)、用JavaScript控制Form表单只能提交一次 主要代码:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form action="${pageContext.request.contextPath}/servlet/DoFormServlet" onsubmit="return dosubmit()" method="post"> 
用户名:<input type="text" name="username"> 
<input type="submit" value="提交" id="submit">
</form>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<head>
 <title>Form表单</title> 
 <script type="text/javascript"> var isCommitted = false; //表单是否已经提交标识,默认为false function dosubmit(){ 
     if(isCommitted==false){ 
     isCommitted = true; //提交表单后,将表单是否已经提交标识设置为true return true; //返回true让表单正常提交  } else { 
     return false; //返回false那么表单将不提交  } } </script>
</head>

(2)、将提交按钮设置为不可用

主要代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function dosubmit(){ 
    
//获取表单提交按钮 
var btnSubmit = document.getElementById("submit"); 
//将表单提交按钮设置为不可用,这样就可以避免用户再次点击提交按钮 
btnSubmit.disabled= "disabled";
 //返回true让表单可以正常提交 
 return true; 
 }

(3)、验证码 页面上添加验证码,不管验证输入正确与否,提交后均刷新验证码。

(4)、ajax提交加锁 采用ajax方式提交表单时,设置一个布尔变量(true/false),当然其他类型变量也可以。初始时为true可以提交,在前端向服务器发出请求后,服务端响应结果没有回来之前将该值置为false,正常响应时再置为true。

(5)、提交后重定向到一个提交成功的页面 表单提交后跳转到另外一个成功页面。这样可以避免用户按F5导致的重复提交,浏览器也不会出现表单重复提交的警告,以及消除按浏览器前进和后退按导致的同样问题。

(6)、服务端生成一个唯一的token 首先在服务端生成一个token保证唯一性,然后将这个token保存在session或者redis等缓存中。与此同时将token放到页面的隐藏input中,发给浏览器。用户在页面上提交时带着这个token一块提交到服务端,服务端通过比对token的值。如果相等代表首次提交,此时将session或者缓存中保存的token值remove掉,反之则认为重复提交,服务端不予处理。

(7)、cookie记录表单提交的状态 使用Cookie记录表单提交的状态,根据其状态可以检查是否已经提交过表单。跟上一种类似,服务端生成token存入Cookie,表单提交时将Cookie中token和服务端token比对。

(8)、数据库添加唯一索引约束 向数据库字段添加一个唯一索引。如果表单重复提交,那么数据库插入重复记录时,唯一约束能有效避免重复入库。这样控制的话,日志会出现Your program attempts to store duplicate values in a database column that is constrained by a unique index的报错信息,看着有点不爽。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106610.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
影驰发布旗下最大容量SSD:2TB
作为国内第一N卡厂商,影驰如今在SSD固态硬盘领域也是如鱼得水,拥有HOF、GAMER、将三大系列产品线,已经进入国内第一集团品牌行列。 现在,主打性价比的将系列又推出旗下影驰最大容量SSD,容量达到
Zip
2018/07/20
5350
美光量产第九代TLC NAND闪存技术:写入速度比竞品快99%!
2024年7月31日,存储芯片大厂美光科技宣布,其采用第九代(G9)TLC NAND技术的SSD现已开始出货,成为首家达成这项里程碑的企业。
芯智讯
2024/08/01
2060
美光量产第九代TLC NAND闪存技术:写入速度比竞品快99%!
全球首款超过200层固态存储芯片问世:密度提升43%,性能翻倍
机器之心报道 编辑:泽南、蛋酱 美光带来了业界最高固态存储密度,单个 NAND 芯片封装高达 2 TB 数据。 存储芯片大厂美光(Micron)近日宣布,其 232 层 NAND 闪存芯片已实现量产。这也是全球首款突破 200 层大关的固态存储芯片。 一些竞争对手目前正在提供 176 层技术,有些厂商表示他们正在紧随此步伐,或者已经有了超过 200 层的工程样品。 与竞争对手的芯片相比,全新美光技术将每单位面积存储的比特密度增加了一倍,每平方毫米封装 14.6 Gbit。这一密度相比自家的 176L N
机器之心
2022/08/25
8320
全球首款超过200层固态存储芯片问世:密度提升43%,性能翻倍
继三星之后,传美光也将对NAND晶圆涨价10%!
9月5日,天风国际分析师郭明錤发文称,继三星在8月份涨价后,美光也将自9月开始调涨NAND Flash晶圆合约价约10%,这将有助于改善美光下半年获利。
芯智讯
2023/09/08
2320
继三星之后,传美光也将对NAND晶圆涨价10%!
长江存储“亮剑”:在美起诉美光侵犯其8项3D NAND专利!
11月11日消息,芯智讯通过美国加州北区地方法院最新公布的信息了解到,中国3D NAND闪存制造商——长江存储科技有限责任公司(以下简称“长江存储”)已于11月9日在美国加州北区地方法院对美国美光科技公司(MICRON)和美光消费类产品事业部(MICRON CONSUMER PRODUCTS GROUP, LLC)(以下统称“美光”)提起诉讼,指控美光侵犯了其8项与3D NAND相关的美国专利。
芯智讯
2023/11/16
2750
长江存储“亮剑”:在美起诉美光侵犯其8项3D NAND专利!
1.5TB/s!美光GDDR7内存已正式送样
6月5日,内存芯片大厂美光科技在 Computex 2024展会上宣布推出业界最高位元密度的新一代GDDR7内存已经正式送样,主要面向人工智能(AI)和游戏市场。
芯智讯
2024/06/07
1710
1.5TB/s!美光GDDR7内存已正式送样
什么是3D NAND闪存,它到底优秀在哪?
随着SSD的普及,SSD已经不再那么神秘,开始逐渐被人们所熟知。但是对于3D NAND闪存,很多人还不是很了解,今天我们就来聊聊3D NAND这个话题。
科技云报道
2022/04/14
2.2K0
什么是3D NAND闪存,它到底优秀在哪?
SK海力士发布321层4D NAND Flash闪存样品,性能提升59%!
虽然美国存储芯片大厂美光在2022年下半年宣称全球首家量产了232层NAND Flash,但事实上,长江存储在美光之前就已经小批量量产了。随后在去年11月7日,三星电子也宣布量产了236层3D NAND闪存芯片。今年6月8日,SK海力士也宣布其在2022年8月开发完成的238层堆叠的NAND Flash芯片正式开始量产。至此,头部的三大存储厂商的NAND Flash均已经进入了232层或236层。
芯智讯
2023/09/07
2580
SK海力士发布321层4D NAND Flash闪存样品,性能提升59%!
MT60B1G16HC-48B:A美光内存颗粒FBGA代码D8BNK[通俗易懂]
美光科技宣布已开始批量出货全球首款基于 176 层 NAND 技术的通用闪存 UFS 3.1 移动解决方案。该产品为高端旗舰手机量身打造,与前代产品相比可实现高达75%的顺序写入和随机读取性能提升 ,从而解锁 5G 潜力 — 只需 9.6 秒即可下载一部2小时的4K 电影。
全栈程序员站长
2022/06/25
1.3K0
MT60B1G16HC-48B:A美光内存颗粒FBGA代码D8BNK[通俗易懂]
3D NAND原厂技术比拼,哪家垂直单元效率更高?
近日市场研究机构Techinsights对于三星、SK海力士/Solidigm、美光、KIOXIA/WD、YMTC的200层以上的3D NAND Flash进行了对比分析,发现三星的垂直单元效率 (VCE,vertical cell efficiency) 是最高的。
芯智讯
2024/06/18
3030
3D NAND原厂技术比拼,哪家垂直单元效率更高?
长存被制裁一年后,三星、SK海力士宣布3D NAND将迈入300层!
2022年,美光、SK海力士、三星等相继量产了232层3D NAND Flash,但是在美方的制裁之下,长存128层及以上NAND Flash的供应链受到严重阻碍。在此背景之下,这些国际大厂纷纷加速迈向300层,希望能主导未来3D NAND Flash的技术路线。
芯智讯
2023/09/07
5280
长存被制裁一年后,三星、SK海力士宣布3D NAND将迈入300层!
232层3D闪存芯片来了:单片容量2TB,传输速度提高50%
Pine 发自 凹非寺 量子位 | 公众号 QbitAI 232层的3D闪存芯片来了,数据传输速率提高50%,容量可达2TB。 美光继上次抢先推出176层3D NAND后,近日又率先推出全球首款232层NAND。 △图源美光科技 说起来,跟NAND层数较劲这事儿,并不是美光一家在做。 比如美光的老对手三星,相关研究中心也聚焦在层数上:此前,三星曾抢先业界公布了第八代V-NAND的细节,堆栈层数超过200层。 所以这样“堆高高”,究竟能给芯片性能带来多大的提升? 堆栈层数就像盖楼房 层数越高,NAND闪存可
量子位
2022/08/26
5700
232层3D闪存芯片来了:单片容量2TB,传输速度提高50%
SiliconMotion:ZNS在QLC闪存上的测试数据
1. ZNS(Zone Name Space)是一种灵活的闪存存储配置方式,适用于需要大量随机写入的应用场景。
数据存储前沿技术
2025/02/11
1660
SiliconMotion:ZNS在QLC闪存上的测试数据
SSD漫谈
放在五年前,SSD (Solid State Drive,固态硬盘)对大多数人而言仍然是一个新兴的陌生产品, 他们不太明白这个又贵又小的硬盘能够给电脑带来什么样的体验。然而时至今日,SSD 已经成为了中高端电脑的标配。甚至对于入门级配置而言,SSD 还是 HDD 的区别已经取代了传统三大件,直接影响着整机运行速度。适逢最近 SSD 降价,不少朋友都有来咨询 reizhi 有关 SSD 的一些问题,这边便汇聚成文,一起总结一下。
reizhi
2022/09/26
1.6K0
SSD漫谈
SKhynix:4D-NAND技术进展(2023)
SK海力士半导体(SK Hynix)[1]成立于1983年,是韩国的一家全球领先的半导体制造商。其前身为现代电子产业株式会社,经过多次重要的重组和收购,最终在2001年从现代集团分离出来,并更名为海力士半导体。公司在1996年正式在韩国上市,并于1999年收购了LG半导体,进一步扩大了其业务范围。
数据存储前沿技术
2025/02/11
1790
SKhynix:4D-NAND技术进展(2023)
SanDisk CZ73 64G评测
众所周知 SanDisk 是全球最大的闪存制造商,作为老牌业务,旗下U盘产品线非常齐全。今天评测的主角便是 SanDisk CZ73 酷铄 64G 版本。作为一款便携产品,CZ73 采用了金属外壳塑料搭扣材质,USB口直插无盖设计避免了保护盖丢失的尴尬情况。而包装依旧延续 SanDisk 的一贯风格采用了一次性封装,拆解后不可还原。目前 CZ73 64G 京东售价为¥119,性价比高于海淘,并且提供五年售后质保。
reizhi
2022/09/26
1.9K0
SanDisk CZ73 64G评测
[海淘]PNY Turob 128G上手评测
时值年末,Amazon 上的活动不少。虽然觊觎 CZ88 已久,但终因性价比不高而放弃。一番比价之后发现 PNY Turbo 128G 特价才34.99刀,果断下单直邮。顺带一提 PNY 也算得是老牌存储厂商了,不过在国内产品线很少,品牌名气不大。这款 PNY Turbo 在国内是不销售的,并且 PNY 也没有全球联保的政策,所以海淘是没有售后的。
reizhi
2022/09/26
5500
[海淘]PNY Turob 128G上手评测
康盈半导体发布C端存储新品,出彩设计在Z世代实力“出圈”
8月23日,中国电子、嵌入式及半导体先进封测行业风向标——elexcon2023深圳国际电子展隆重开幕。作为本次深圳电子展的重磅活动之一,国产存储新锐企业康盈半导体再次焕新而来,以“燃青春,随芯存”为主题,发布2023 C端存储新产品,拉开了C端新攻势的序幕。康盈半导体在行业见底复苏和回温中“抢鲜”开跑,也传递出国产存储企业对未来市场的信心。
芯智讯
2023/09/07
1810
康盈半导体发布C端存储新品,出彩设计在Z世代实力“出圈”
TechInsight:3D-NAND发展趋势
在3D-NAND领域,CTF(Charge Trap Flash) 和FG(Floating Gate) 是两种主要的存储单元架构,各自具有不同的技术特点和优势。
数据存储前沿技术
2025/02/11
2620
TechInsight:3D-NAND发展趋势
FAM与CXL:HPC存储架构的未来机遇
在高性能计算(HPC)领域,存储技术的创新一直是推动计算能力提升的关键。随着数据规模的不断增长和计算需求的日益复杂,传统的存储架构已逐渐无法满足需求。HPE通过其创新的FAM(Fabric-Attached Memory)和CXL(Compute Express Link)技术,为HPC存储架构带来了新的可能性。本文将深入探讨这些技术的核心原理、应用场景以及未来的发展机遇,帮助读者全面理解FAM和CXL在HPC中的重要性。
数据存储前沿技术
2025/02/21
1670
FAM与CXL:HPC存储架构的未来机遇
推荐阅读
相关推荐
影驰发布旗下最大容量SSD:2TB
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档