




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
struts2 防止重复提交 1、什么是重复提交 1.所谓重复提交,就是用户在页面多次点击提交按钮,或者通过不断刷新 页面,把已经提交过的数据多次向后台提交。 2.重复提交对于查询类的功能,问题还不是太大,但是对于新增或是修改 类的功能,就有可能凭空的出现很多同样信息的重复数据,从而导致业务功能 出现错误。 3.用一个实例来让大家体会一下重复提交的问题,来实现一个订单新增的 功能,订单号一般都是由后台自动生成,前台页面只要传递订购人、订购商品 和订购数量等订单的具体信息过来就可以了。为了示例的简洁,只是从前台传 递一个订购的商品和一个订购的数量,一共两个值就可以了,就不去处理什么 订单的主记录、子记录等复杂的功能了。 2、模拟重复提交的产景 1.写一个处理订单的 Action,接收前台传递过来的数据,然后输出即可。 为了表示会花一定的时间来进行业务处理,在 execute 方法里面,让线程休息 6 秒。 2.配置 Action,在 struts.xml 中配置 Action,示例如下: /order/list.jsp 3.制作新增页面,提供新增页面来让用户输入:预定的产品编号和预定的 数量,然后提交到上面的 Action。 4.运行测试,运行新增页面,填写数据,然后点击提交。由于 Action 中, 让当前线程 sleep 了 6 秒钟,所以必须等 6 秒之后才能正确的结束调用。如果 这个时候用户乖乖的等足 6 秒,自然没有什么问题。但是,如果用户在第一次 提交还没有响应的时候,又再次点击了提交按钮,则同样的请求再次被提交, 这时候,如果不加任何控制的话,同样的订单就将被处理两次了。可以在控制 台中看到输出以下信息: 三、什么是令牌 1.令牌基本思想:一个独特称为令牌的标志信息(一位或多位二进制数字 组成的码)从一个节点发送到另一个节点,只有获得令牌的节点才有权发送信 息包。当一个工作站准备发送报文信息时,首先要等待令牌的到来,当检测到 一个经过他的令牌为空令牌时,即可以“帧”为单位发送信息,并将令牌置为 忙向下一站发送信息。下一站按转发的方式转发经过本站但又不属于有本站接 受的信息。由于环中已无空闲令牌,因此其他希望发送的工作站必须等待。 2.令牌接收过程:每一站随时检测经过本站的信息,当查到信息包指定的 目的地址与本站地址相同时,则一面拷贝全部有关信息,一面继续转发该信息 包,环上的帧信息绕环网一周,由原发送点予以收回。按这种方式工作,发送 一直在源站点控制之下,只有发送信息包的源站点放弃发送权把令牌置“空” 后,其他站点得到令牌才有机会发送自己的信息。 四、令牌生成原理图 1.从上一图片可以看出,如果某个 jsp 页面有 token 标签,那么无论是请求 这个界面还是内部转发到这个界面,我们统一说成是“渲染界面”的时候,都 会造成 token id 的产生或者更新。 2.重点声明,这里请求的是 jsp 页面,此时可以产生令牌,但令牌不会起作 用,因为它拦截的不是 jsp,而是通过反射机制调用的方法。 1.从上图可以看出,令牌可以拦截的是 Action 中的方法。 2.如果方法需要被拦截,会判断 session 中的 token id 和提交过来的 token id 是否相等。 如果不相等,则直接跳转到预先配置好的界面,session 中的 token id 不变;如果相等,则 执行请求的方法,关键一点是,此时 session 中的 token id 会被清空。这个步骤非常关键。 五、使用令牌需要注意 1.注意令牌的产生时机,它是在加载(或渲染)带有 token 标签的 jsp 页面时产生的, 与请求或者转发无关,与方法是否被拦截无关。 2.由于服务器端的 token id 是保存在 session 中的,因此不同的页面间可以共享,使用 时注意,避免混乱。 3.如果访问的方法属于被拦截的方法,验证通过之后,会清空 session 中的 token id; 如果验证不通过,session 中的 token id 不变,直到下一次加载(或渲染)带有 token 标签 的 jsp 页面。 六、验证成功后清空 token id 为什么验证通过后要清空 session 中的 token id 呢? 其实不难理解,从宏观上来思考,重复提交有一个必然的特征:它的 token id 是上一 个。因此只要保证验证通过后 session 中保存的 token id 变化即可,清空是最直接的办法。 要想通过验证,只有一个途径:重新加载(或渲染)带有 token 标签的 jsp 页面,使客户端 的 token id 和服务器端的 token id 一致。 七、解决“商品表单”重复提交问题 两种方式: 借助, 借助 两种方式区别: token 拦截器进行拦截,如果为重复请求,就重定向到名为 invalid.token 的 Result。 tokenSession 拦截器与 token 拦截器唯一的不同是在判断某个请求为重复请求之后,并 不是立即重定向到名为 invalid.token 的 Result,而是先阻塞这个重复请求,直到浏览器响应 最初的正常请求,然后就可以跳转到处理正常请求后的 Result 了。 1.修改 struts.xml 文件 2.修改原来的 jsp 页面,在页面的表单加上标签 8、注意 注意 1:invaid.token 页面可以打印错误信息,需要使用 struts2 标签: 注意 2: 1、 JSP 使用标签的时候,Struts2 会建立一个 GUID(全局唯一的字符串)放 在 session 中,并且会成为一个 hidden 放在 form 中。 2、 token 拦截器会判断客户端 form 提交的 token 和 session 中保存的 session 是否 equals。如果 equals 则执行 Action。否则拦截器直接返回 invaid.token 结果,Action 对应的 方法也不会执行。 登录拦截器 一、拦截器的编写 2、 写配置文件 3、配置文件的解释 1.上面的配置声明了一个叫 LoginChecker 的自定义拦截器 2.声明了一个 myStack 拦截器栈,在这个栈里面引用了 LoginChecker 拦截 器和 defaultStack 拦截器,在引用 LoginChecker 拦截器的时候,还传入了两 个自定义的参数,其中 sessionAttribute 传入 login_user,reloginResult 传 入 login,以备在拦截器中使用 3.将 myStack 拦截器栈指定为这个包的默认拦截器引用 4.声明了一个全局 Result,作为所有需要登录检查的 Action 在没有登陆的 时候,跳转到的登陆页面。这个 Result 的命名,要与引用 LoginChecker 拦截 器时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中化学 第一章 化学反应与能量 第1节 化学反应与能量的变化教学实录 新人教版选修4
- 27《一个粗瓷大碗》(教学设计)-2024-2025学年统编版语文三年级上册
- 2024-2025学年高中化学 第一单元 走进化学工业 1.3 纯碱的生产教学实录2 新人教版选修2
- 项目解决方案设计与实施计划
- 14 圆明园的毁灭 教学设计-2024-2025学年语文五年级上册统编版
- 2023七年级数学上册 第三章 一元一次方程3.1 从算式到方程3.1.2 等式的性质教学实录(新版)新人教版
- 2023-2024学年清华版(2012)信息技术三年级上册 第四单元《16课 月夜思故乡-图形组合》教学设计
- 2024-2025学年高中化学 第1章 从实验学化学 第1节 化学实验基本方法教学实录 新人教版必修1
- 某学院江宁校区单体设计宿舍C、D单元施工组织设计
- 2023一年级数学下册 一 加与减(一)第3课时 快乐的小鸭子教学实录 北师大版
- JB-QGL-TX3016AJB-QTL-TX3016A火灾报警控制器安装使用说明书
- 可靠性验证抽样方法LTPD方案
- 《台海危机》课件
- 部编版小学语文一年级下册第三单元大单元教学设计教材分析
- MOOC 数据库系统(中):建模与设计-哈尔滨工业大学 中国大学慕课答案
- 2024年湖南食品药品职业学院单招职业技能测试题库及答案解析
- 2024年江苏医药职业学院单招职业技能测试题库及答案解析
- 2024年全国高考物理电学实验真题(附答案)
- 保育员基本素养知识讲座
- 2024宁波枢智交通科技有限公司招聘笔试参考题库附带答案详解
- 乳腺疏通课件
评论
0/150
提交评论