- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
T14避免重复提交.ppt
避免表单重复提交与等待页面 第12 章 教学目标 1、避免表单重复提交的原理 2、使用token拦截器 3、使用tokenSession拦截器 4、自动等待页面的实现 回顾 1、访问数据库 2、使用Tomcat数据源 3、Struts 2 数据分页 4、Struts数据库操作 5、文件上传 6、文件下载 一、避免表单重复提交的原理 1、导致表单重复提交现象的产生 (1)多次单击提交按钮 当用户在页面的表单中填写完信息,单击提交表单的 按钮后,可能因为响应不及时,用户没有看到响应结 果而再次单击提交按钮,从而导致在服务器端接收两 条同样的信息。 (2)执行刷新操作 用户看到成功信息后,对成功页面执行刷新操作,这 时浏览器将再次提交用户先前输入的信息 一、避免表单重复提交的原理 2、避免表单重复提交 避免表单重复提交可以在客户端通过脚本实现,也可以在 服务器羰编写代码实现。 在服务器端避免表单重复提交,通常采用同步令牌的方式 来实现,同步令牌的基本原理如下。 (1)服务器在处理客户端请求时,创建一个session对象和一个令牌值(如:token1)。然后将token1作为隐藏表单域的值,随处理结果一起发送到客户端,同时将token1保存到session中。 (2)服务器端在处理到达的请求之前,将请求中的token1与保存在当前用户session中的值进行比较,检查这两个值是否匹配 一、避免表单重复提交的原理 (3)如果相等,表求用户是第一次提交该表单,则清除session中的token1,然后执行数据处理操作,同时产生一个新的令牌值(如token2)保存到session,当用户重新访问提交数据页面时,将新产生的token2作为隐藏输入域的值 (3)如果用户重复提交,客户端传过来的令牌值是token1,而服务器端的令牌值已经为token2,这两个令牌值不相等,于是不再对用户的请求进行提交,从而有效的防止了表单重复提交的发生。 二、s:token防止表单重复提交 s:token标签在session中生成Token号码和在网页中生成一个带有该号码的隐藏字段。 TokenInterceptor拦截器检查请求消息中的Token与session中的Token是否匹配: 匹配则放行,并清除session中的Token号码。 不匹配则跳转到名称为invalid.token的视图。 防止表单校验出错后,回到表单页面时,有什么方式显示出是表单校验出错呢? 用struts.messages.invalid.token作为key对表单重复提交的消息进行国际化定制,使用s:actionError标签显示表单重复提交的错误消息。 二、 s:token /标签防止重复提交 在debug状态,控制台出现下面信息,是因为Action中并没有struts.token和struts.token.name属性,我们不用关心这个错误: 严重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting struts.token on class xxx: Error setting expression struts.token with value [Ljava.lang.String;@39f16f 严重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting struts.token.name 三、使用tokenSession拦截器 tokenSession拦截器是token拦截器的扩展,但是tokenSession拦截器不会返回一个特殊的结果,也不会添加一个动作错误,只是阻断后面的提交,这样做的结果就是用户将看到同样的响应,就好像只有一次提交。 tokenSession拦截器的实现类是TokenSessionStoreInterceptor, TokenSessionStoreInterceptor类继承了TokenInterceptor类. 三、使用tokenSession拦截器 TokenSessionStoreInterceptor的作用与实践 浏览器多次提交表单,如果服务器端按上面的方式防止了表单重复提交,最终显示的结果是最后一次表单提交的响应内容,即表单重复提交的提示信息。为了增强用户的操作体验,服务器端应该忽略浏览器后续的提交操作的同时,还要把第一次正常提交的结果显示给用户,让用户感觉他就是成功地提交了一次请求,并直接看到了成功请求的结果,便于后续操作。 三、使用tokenSession拦截器 如果使用tokenSession拦截器,只需要修改s
您可能关注的文档
- Poster_Buddhist_Women_at_the_Grassroots_final4_01pdf:poster_buddhist_women_at_the_grassroots_final4_01pdf.pdf
- PostgraduateDiabetesProgrammeupdated01042014:研究生糖尿病计划更新01042014.pdf
- PostNatalPostTraumaticStressDisorder:产后的创伤后应激障碍.ppt
- POULTRYBRINEINJECTIONS-ParliamentaryMonitoring…:家禽盐水注射议会监督….ppt
- PowerDesigner模型设计-深蓝-博客园.pdf
- PowerEdgeR920服务器产品彩页.pdf
- PowerPAIR封装改善电源的性能详解.pdf
- PowerPoint-IdealGasLaw-Pressure,Volume,Temperature:PowerPoint理想气体定律-压力,体积,温度.ppt
- PowerPointPresentation-CompoundSentences:PowerPoint演示文稿的复合句.ppt
- PowerPointPresentation-SIGNIFICANTFIGURES:PowerPoint演示文稿-重要的人物.ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)