`

《研磨struts2》第十七章 防止重复提交 之 17.3 更强大的tokenSession拦截器

 
阅读更多

17.3  更强大的tokenSession拦截器

回顾一下上面<s:token/>标签和token拦截器连用,解决了重复提交问题,用法极其简单:Action引用token拦截器,<s:form/>标签内加一个<s:token/>标签,两句话就足以概括,一分钟就足以做完。

但是结果稍稍有点遗憾:对于一次正常提交和一次重复提交,使用token拦截器会使得浏览器最终重定向到invalid.token指定的Result。那么,有没有更好的办法可以让“重复提交”看起来好像没有发生过,浏览器最终跳转到正常提交指定的Result呢?

       当然有,而且做法同样简单,把token拦截器换为tokenSession拦截器即可。tokenSession拦截器与token拦截器唯一的不同是在判断某个请求为重复请求之后,并不是立即重定向到名为invalid.token的Result,而是先阻塞这个重复请求,直到浏览器响应最初的正常请求,然后就可以跳转到处理正常请求后的Result了。

因此,只需要修改struts.xml即可,示例如下:

 

java代码:
  1. <package name="helloworld" extends="struts-default">  
  2.     <action name="tokenAction" class="cn.javass.token.TokenAction">  
  3.         <interceptor-ref name="tokenSession"/>  
  4.         <interceptor-ref name="defaultStack"/>  
  5.         <result>/token/list.jsp</result>  
  6.     </action>  
  7. </package>  

只做了两点修改:

  • 由引用token拦截器变为引用tokenSession拦截器。
  • 不再需要名为invalid.token的Result。

再次运行看看,虽然重复提交了,但是仍然正常跳转到success指定的页面了,而且后台也只是处理了一次。

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4151.html

欢迎访问http://sishuok.com获取更多内容

分享到:
评论

相关推荐

    研磨Struts2配书视频对应的演示源代码

    2. **拦截器(Interceptors)**:Struts2的核心之一是其拦截器机制,它们在Action执行前后执行一系列预定义或自定义的操作。这些拦截器可以用于登录验证、日志记录、性能监控等。源代码中可能包含了不同类型的拦截器...

    研磨Struts2

    ### 知识点一:Struts2入门(MVC HelloWorld) #### 1.1 Struts2简介 ...以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习这些内容,开发者可以更好地掌握Struts2框架的核心技术和实践技巧。

    研磨struts2

    **Struts2** 作为 **Struts1** 的下一代产品,在很多方面进行了改进,例如支持拦截器、动态方法调用、文件上传下载等。其核心组件包括: - **Action**:控制器组件,用于处理具体的业务逻辑。 - **Interceptor**:...

    研磨struts2 高清版

    由于文件较大,我把这个文档切割为2部分,这是第一部分,请下载完第一部分后一定要下载第二部分,否则不能阅读。

    研磨Struts2配书视频对应的PPT

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建高效、可扩展且易于维护的Web应用的工具和组件。《研磨Struts2》这本书是专门针对Struts2框架的学习...

    研磨struts2_系列文章.pdf

    从给定的文件信息来看,这是一份关于Struts2框架深入解析的系列文章,涵盖了Struts2的基础、架构、核心组件、高级特性等多个方面,旨在帮助读者全面掌握Struts2框架的应用与实践。以下是对该系列文章所涵盖的关键...

    《研磨Struts 2》PDF版本下载.txt

    相比于第一代Struts框架,Struts 2提供了更多的功能,如拦截器、动态方法调用、更强大的表单处理机制等,并且它与Spring和Hibernate等其他Java EE技术栈的集成更加紧密。 ### Struts 2的特点 1. **强大的表单处理...

    研磨struts

    Struts2是一个强大的Java web应用程序框架,用于构建MVC(Model-View-Controller)结构的Web应用。这个框架简化了开发过程,提供了丰富的插件和拦截器机制,以支持复杂的应用场景。《研磨Struts2》这本书主要介绍了...

    研磨Struts2 高清完整版.part2

    研磨Struts2 高清完整版,请和第一部分一起下载啊

    研磨Struts2_12859679_高清完整版.part2.rar

    研磨Struts2_12859679_高清完整版

    研磨Struts2-高清-完整目录-2011年10月

    研磨Struts2-高清-完整目录-2011年10月,分享给所有需要的人

    研磨设计模式(完整带书签).part2.pdf

    第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...

    研磨设计模式-part2

    第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...

    研磨设计模式(完整带书签).part1.pdf

    第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...

    研磨设计模式.part2(共4个)

    第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...

    研磨设计模式.part2

    研磨设计模式.part2 一定要下载5部分

Global site tag (gtag.js) - Google Analytics