CN101482820A - 一种防止页面重复提交的方法 - Google Patents

一种防止页面重复提交的方法 Download PDF

Info

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
Application number
CNA2009100143127A
Other languages
English (en)
Inventor
高传集
李向阳
贾德星
曹祥茂
付金涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Langchao Qilu Software Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Langchao Qilu Software Industry Co Ltd filed Critical Langchao Qilu Software Industry Co Ltd
Priority to CNA2009100143127A priority Critical patent/CN101482820A/zh
Publication of CN101482820A publication Critical patent/CN101482820A/zh
Pending legal-status Critical Current

Links

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中,并执行业务程序。
CNA2009100143127A 2009-02-13 2009-02-13 一种防止页面重复提交的方法 Pending CN101482820A (zh)

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)

* Cited by examiner, † Cited by third party
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 中国联合网络通信集团有限公司 重复请求判断方法及装置

Cited By (18)

* Cited by examiner, † Cited by third party
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