设置分为两步:
1. 修改Struts.xml配置(以名称为searchAction为例)
<action name="searchAction" class="MailLogAction" method="execute">
<result>/pages/MainPage.jsp</result>
</action>
对于以上的action,未加入防刷新机制时,按F5会重复提交表单。
对于以下修改后:
<action name="searchAction" class="MailLogAction" method="execute">
<result>/pages/MainPage.jsp</result>
<result name="invalid.token" type="freemarker">/pages/MainPage.jsp
</result>
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">default</param>
</interceptor-ref>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">default</param>
</interceptor-ref>
</action>加入红色部分即可。
<result name="invalid.token" type="freemarker">/pages/MainPage.jsp
</result>
此部分设置表单重复提交时指向的页面。
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">default</param>
</interceptor-ref>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">default</param>
</interceptor-ref>
此部分设置拦截器。
2. 修改jsp页面
找到对应的action的页面,在表单下新增<s:token></s:token>
如下:
<s:form name="SearchLog" method="post" action="searchAction">
<!-- 防止刷新重复提交 -->
<s:token></s:token>
分享到:
相关推荐
### Struts2防止表单重复提交 #### 一、预备知识 **1. 拦截器配置** 在Struts2框架中,拦截器扮演着非常重要的角色,它能够为框架提供一系列强大的功能支持。例如,拦截器可以用于实现表单验证、文件上传、异常...
通过这样的设置,当用户在登录成功后刷新页面时,浏览器将会跳转到指定的页面,而不会导致重复提交表单的问题。 综上所述,Struts2框架提供了token机制以及灵活的跳转方式配置来解决表单重复提交的问题。开发者在...
在Struts2中,防止重复提交是一个重要的问题,因为它可能导致数据不一致性和服务器资源的浪费。本文将详细介绍如何在Struts2中解决这个问题,以及相关的技术概念。 首先,我们要理解Struts2中的拦截器(Interceptor...
在Web开发中,一个常见的问题就是防止用户意外或恶意地重复提交表单,这可能导致数据的不一致性和服务器负载的增加。Struts2提供了一种称为“令牌”或“Token Session”的机制来解决这个问题。 令牌机制的工作原理...
Struts2框架提供了内置的支持来防止这种重复提交的现象。 #### 表单重复提交的原因与危害 1. **原因**:表单重复提交主要由以下几种情况导致: - 用户重复点击提交按钮。 - 浏览器的后退功能或刷新功能重新发送...
### Struts Token机制防止页面刷新及重复提交 在Web应用开发过程中,特别是在使用MVC框架如Apache Struts进行开发时,防止表单重复提交是一个重要的安全措施。表单重复提交通常发生在用户点击“提交”按钮后,由于...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用...综上所述,Struts2的Token机制是防止Web应用中重复提交的有效工具,通过合理的配置和编程,可以为用户的操作提供更安全的环境。
在Struts配置文件中,为需要防止重复提交的Action添加一个拦截器引用,如`token`或`token-session`。这两个拦截器都可以处理Token,但`token-session`更安全,因为它会将Token存储在会话中,而不仅仅是请求中。 2....
Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...
2. **sessionToken机制**:Struts2框架提供了一个拦截器`TokenInterceptor`,它可以自动管理基于Session的令牌,防止重复提交。 3. **.strutsPrepareAndExecute interceptor**:这个拦截器可以处理表单的唯一性,...
本篇文章将深入探讨如何防止表单重复提交,主要关注于基于Struts2框架的解决方案。 首先,理解表单重复提交的原因。用户在点击提交按钮后,如果网络延迟或用户误操作导致页面刷新或再次点击提交,就可能发生重复...
Struts2提供了一种基于Token的防止重复提交策略。在表单提交时,服务器会生成一个唯一的Token并将其存储在Session中,同时将Token放入到表单中。当用户提交表单时,服务器会检查提交的Token是否与Session中的Token...
在Struts的配置文件(例如`struts.xml`)中,为需要防止重复提交的Action添加一个拦截器栈,包括`token`和`tokenSession`拦截器。 ```xml <!-- 配置错误结果页面 --> <param name="includeParams">none ...
Struts的Token机制主要用来防止用户意外或恶意的多次提交表单,例如在刷新页面时重复提交数据。它的工作原理如下: 1. **生成Token**: 当用户访问一个需要防重复提交的表单时,服务器会生成一个唯一的Token并将其...
令牌机制是Struts框架用于防止表单重复提交的一种手段。其基本原理是在客户端与服务器之间传递一个随机生成的唯一标识符(即令牌),通过对比客户端提交时携带的令牌与服务器端存储的令牌是否一致来判断请求是否有效...
Struts2 Token回退刷新是一种防止重复提交的安全机制,尤其在处理并发操作和防止 CSRF(跨站请求伪造)攻击时显得尤为重要。Struts2框架提供了一种令牌验证的方式来确保每个表单提交是唯一的,避免了恶意用户通过...
当用户尝试重复提交表单时,Struts2会检测到Token已经使用过,因此会抛出异常。你可以捕获这个异常并给出相应的提示,例如: ```java public class MyAction extends ActionSupport { @Override public void ...
总的来说,Struts2的Token机制是一种有效防止表单重复提交的方法,它通过生成和验证唯一标识来确保每个请求的唯一性,从而保护了业务的正确性和数据的一致性。在实际开发中,根据项目需求和安全策略,我们可以灵活...
本节主要关注Struts在处理两个关键问题上的高级应用:防止重复提交和文件上传组件的使用。 **一、解决重复提交** 在Web应用程序中,重复提交是一个常见的问题,可能导致数据不一致或服务过载。Struts通过几种策略...