CN101482820A - 一种防止页面重复提交的方法 - Google Patents
一种防止页面重复提交的方法 Download PDFInfo
- Publication number
- CN101482820A CN101482820A CNA2009100143127A CN200910014312A CN101482820A CN 101482820 A CN101482820 A CN 101482820A CN A2009100143127 A CNA2009100143127 A CN A2009100143127A CN 200910014312 A CN200910014312 A CN 200910014312A CN 101482820 A CN101482820 A CN 101482820A
- Authority
- CN
- China
- Prior art keywords
- token
- page
- submit
- formation
- urlist
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 230000002265 prevention Effects 0.000 abstract 1
- 230000007812 deficiency Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明基于struts防重复提交技术,提供一种防止页面重复提交的方法,该方法是通过修改Struts的Token令牌机制,采用一个页面多个token对象,每个token对象对应多个url请求,所有token对象构成一个循环队列,进而防止一个页面的多个并发重复提交,本发明使用token队列,一个form里面设置token,token采用先进先出的原则。这样就可以实现多个form时候防止重复提交页面。
Description
技术领域
本发明涉及一种计算机应用技术领域,具体的说是一种在J2EE(Java 2Enterprise Edition)平台中实现防止页面重复提交的方法。
背景技术
现有技术方案中采用了Struts的Token(令牌)机制,原理如下:当访问一个请求的时候,底层框架将一个令牌(所谓令牌就是一个随机生成的一个字符串)放入session中,然后再转向到jsp,html:form标签将session中的令牌保存到form表单中一个隐藏域中,等用户输入完数据,然后点击保存执行保存请求的时候,底层框架会在业务程序之前判断session中的令牌和客户端传递过来的隐藏域中的令牌是否相等,如果相等,则更新session中的令牌,并去执行业务程序;当系统反应速度比较慢,用户可能会点击第二次或者用户点击浏览器的回退,然后再点击提交,或者直接刷新页面,提交执行,在上面这几种情况下,由于点击第一次后,session中的令牌已经更新,因此session中的令牌和隐藏域中的令牌就不相等,则是重复提交,返回一个错误页面提示重复提交了。
因此这种方案造成的不足是:
1.由底层统一控制,全局性的控制,不够灵活。
2.一个jsp中如果有多个form,而且需要同时提交时,第二个要提交的form将不能提交,因为当提交了第一个form后,session中的令牌将被更新,那么第二个form提交时就会由于session中的令牌的改变而不能提交。
3.当页面中有多个按钮,比如有保存、返回等按钮的时候,但点击保存后,再点击返回,同样提示重复提交的问题,也就是说,重复提交的控制是整个页面,而不是控制到一个cmd。
4.当页面有iframe(不管是否隐藏)的时候,iframe执行的cmd会将session中的令牌重写,这样造成iframe所在的主页不能提交。
5.当采用一个页面多个tab页显示内容时候,用户打开多个页面,这样新打开的页面将会把session中的令牌修改,造成以前打开的页面不能提交。
发明内容
发明目的是克服现有技术中存在的不足,提供一种在J2EE平台中实现防止页面重复提交的方法。
本发明的目的是按以下方式实现的,修改Struts的Token令牌机制,采用一个页面多个token对象,每个token对象对应多个url请求,所有token对象构成一个循环队列,进而防止一个页面的多个并发重复提交。
本发明的积极效果是:解决了原来方案中的弊端,例如:
1.由于每个form会产生一个令牌,并将它们都放入到session中,这个不会出现令牌被修改的问题。可以解决原方案中的,一个jsp中如果有多个form,而且需要同时提交时,第二个要提交的form将不能提交,因为当提交了第一个form后,session中的令牌将被更新,那么第二个form提交时就会由于session中的令牌的改变而不能提交的问题。
2、由于一个令牌对应多个url,这样就解决了原方案中的,当页面中有多个按钮,比如有保存、返回等按钮的时候,但点击保存后,再点击返回,同样提示重复提交的问题,也就是说,重复提交的控制是整个页面,而不是控制到一个cmd的问题。
3、由于session中可以存放10个token,这就解决了原来方案中的当页面有iframe(不管是否隐藏)的时候,iframe执行的cmd会将session中的令牌重写,这样造成iframe所在的主页不能提交的问题和当采用一个页面多个tab页显示内容时候,用户打开多个页面,这样新打开的页面将会把session中的令牌修改,造成以前打开的页面不能提交的问题。
具体实施方式:
1)将session中存放的令牌,修改为一个包含令牌的对象,对象的结构存放一个队列。
Tokens这个类是一个自己设计的循环队列,先进先出,对象中存放了一个大小为10的Token类型的队列。Token类中有两个属性,一个是String类型的属性tokenName,也就是令牌,另外一个是List类型的变量urList,用于存放url。
2)每个form产生一个令牌,并将令牌放入Tokens这个队列中。
3)判断是否重复提交的时候首先在Tokens队列中取出于页面传递过来的令牌相同的Token对象,然后判断这个对象中的urList中是否有当前提交的请求,如果有,则是重复提交,终止操作,抛出异常;如果没有,将当前请求的url放入urList中,并执行业务程序。
Claims (1)
1.一种防止页面重复提交的方法,其特征在于,修改Struts的Token令牌机制,采用一个页面多个token对象,每个token对象对应多个url请求,所有token对象构成一个循环队列,进而防止一个页面的多个并发重复提交,具体步骤如下:
1)是将session中存放的令牌,修改为一个包含令牌的对象,对象的结构存放一个队列;
Tokens这个类是一个自己设计的循环队列,先进先出,对象中存放了一个大小为10的Token类型的队列,Token类中有两个属性,一个是String类型的属性tokenName,也就是令牌,另外一个是List类型的变量urList,用于存放url;
2)每个form产生一个令牌,并将令牌放入Tokens这个队列中;
3)判断是否重复提交的时候首先在Tokens队列中取出于页面传递过来的令牌相同的Token对象,然后判断这个对象中的urList中是否有当前提交的请求,有,则是重复提交,终止操作,抛出异常;没有,将当前请求的url放入urList中,并执行业务程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100143127A CN101482820A (zh) | 2009-02-13 | 2009-02-13 | 一种防止页面重复提交的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100143127A CN101482820A (zh) | 2009-02-13 | 2009-02-13 | 一种防止页面重复提交的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101482820A true CN101482820A (zh) | 2009-07-15 |
Family
ID=40879946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100143127A Pending CN101482820A (zh) | 2009-02-13 | 2009-02-13 | 一种防止页面重复提交的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101482820A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724225A (zh) * | 2011-03-30 | 2012-10-10 | 同方股份有限公司 | 一种防wap网页重入的方法及装置 |
CN103561417A (zh) * | 2013-11-08 | 2014-02-05 | 五八同城信息技术有限公司 | 提高移动客户端产品对用户请求的响应质量的方法 |
CN103841111A (zh) * | 2014-03-17 | 2014-06-04 | 北京京东尚科信息技术有限公司 | 一种防止数据重复提交的方法和服务器 |
CN104184832A (zh) * | 2014-09-10 | 2014-12-03 | 北京国双科技有限公司 | 网络应用中的数据提交方法及装置 |
CN104346564A (zh) * | 2013-08-02 | 2015-02-11 | 中国银联股份有限公司 | 一种基于Web的安全的用户交互方法 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN106156133A (zh) * | 2015-04-09 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 控制表单重复提交的方法、装置及系统 |
CN107451472A (zh) * | 2012-03-08 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 表单验证方法、装置和系统 |
CN107872507A (zh) * | 2017-08-25 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种防止页面重复提交的方法 |
CN108985092A (zh) * | 2017-06-05 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 提交请求的过滤方法、装置、电子设备和存储介质 |
CN109144625A (zh) * | 2017-06-28 | 2019-01-04 | 东软集团股份有限公司 | 防重复提交方法、装置和系统 |
CN109783718A (zh) * | 2018-12-14 | 2019-05-21 | 中国联合网络通信集团有限公司 | 重复请求判断方法及装置 |
-
2009
- 2009-02-13 CN CNA2009100143127A patent/CN101482820A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724225A (zh) * | 2011-03-30 | 2012-10-10 | 同方股份有限公司 | 一种防wap网页重入的方法及装置 |
CN107451472B (zh) * | 2012-03-08 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 表单验证方法、装置和系统 |
CN107451472A (zh) * | 2012-03-08 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 表单验证方法、装置和系统 |
CN104346564A (zh) * | 2013-08-02 | 2015-02-11 | 中国银联股份有限公司 | 一种基于Web的安全的用户交互方法 |
CN103561417A (zh) * | 2013-11-08 | 2014-02-05 | 五八同城信息技术有限公司 | 提高移动客户端产品对用户请求的响应质量的方法 |
CN103841111B (zh) * | 2014-03-17 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 一种防止数据重复提交的方法和服务器 |
CN103841111A (zh) * | 2014-03-17 | 2014-06-04 | 北京京东尚科信息技术有限公司 | 一种防止数据重复提交的方法和服务器 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN104184832B (zh) * | 2014-09-10 | 2017-10-03 | 北京国双科技有限公司 | 网络应用中的数据提交方法及装置 |
CN104184832A (zh) * | 2014-09-10 | 2014-12-03 | 北京国双科技有限公司 | 网络应用中的数据提交方法及装置 |
CN106156133A (zh) * | 2015-04-09 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 控制表单重复提交的方法、装置及系统 |
CN106156133B (zh) * | 2015-04-09 | 2019-08-20 | 阿里巴巴集团控股有限公司 | 控制表单重复提交的方法、装置及系统 |
CN108985092A (zh) * | 2017-06-05 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 提交请求的过滤方法、装置、电子设备和存储介质 |
CN109144625A (zh) * | 2017-06-28 | 2019-01-04 | 东软集团股份有限公司 | 防重复提交方法、装置和系统 |
CN109144625B (zh) * | 2017-06-28 | 2021-08-27 | 东软集团股份有限公司 | 防重复提交方法、装置和系统 |
CN107872507A (zh) * | 2017-08-25 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种防止页面重复提交的方法 |
CN109783718A (zh) * | 2018-12-14 | 2019-05-21 | 中国联合网络通信集团有限公司 | 重复请求判断方法及装置 |
CN109783718B (zh) * | 2018-12-14 | 2021-03-12 | 中国联合网络通信集团有限公司 | 重复请求判断方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101482820A (zh) | 一种防止页面重复提交的方法 | |
Cressman et al. | The replicator equation and other game dynamics | |
Snyder | Multiple risk reduction mechanisms: can dormancy substitute for dispersal? | |
US8402179B1 (en) | Event notification system and method | |
US8230046B2 (en) | Setting cookies in conjunction with phased delivery of structured documents | |
US7676581B2 (en) | Web application resource management | |
CN103608799A (zh) | 自动用户界面对象变换和代码生成 | |
Roopnarine et al. | The evolutionary palaeoecology of species and the tragedy of the commons | |
US20180343174A1 (en) | Rule based page processing and network request processing in browsers | |
US8756214B2 (en) | Crawling browser-accessible applications | |
US20150261832A1 (en) | Storing service items in association with views | |
WO2015175324A1 (en) | Active summaries in user interfaces to collaboration services | |
CN110226156A (zh) | 客户端与服务器之间的属性值的同步 | |
US10210026B2 (en) | Enterprise tools enhancements | |
CN106663242A (zh) | 在文档中标识和显现相关的报告工件 | |
CN107872507A (zh) | 一种防止页面重复提交的方法 | |
US12052206B1 (en) | Systems and methods for improving interactions with artificial intelligence models | |
CN103197922A (zh) | 用html开发(web)动态脚本的技术方法 | |
Dai et al. | Mathematical and Dynamic Analysis of a Prey‐Predator Model in the Presence of Alternative Prey with Impulsive State Feedback Control | |
CN104504004B (zh) | 用于网站分享的分享方法和装置 | |
Li et al. | Bifurcation Based‐Delay Feedback Control Strategy for a Fractional‐Order Two‐Prey One‐Predator System | |
Berg-Mohnicke et al. | A case for object capabilities as the foundation of a distributed environmental model and simulation infrastructure | |
Leduc | Hierarchical interface-based supervisory control with data events | |
Zuijderduijn et al. | Spending, saving, or investing? Risk management in sixteenth‐century Dutch households | |
Chorazyk et al. | Volunteer computing in a scalable lightweight web-based environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090715 |