在Struts2中使用token标签和内置的拦截器,来防止刷新提交和后退提交非常简单方便。
1. 在需要防止重复提交的jsp中,只需添加一个标签<s:token />
2. 在对应的struts.xml中进行配置token拦截器,如下代码,红色部分
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="cinema" extends="struts-default">
<global-results>
<result name="error">/index.jsp</result>
</global-results>
<action name="cinema" class="cinemaAction">
<result name="saveSuccess" type="redirect-action">cinema!listCinema</result>
<result name="listSuccess">cinema/listCinema.jsp</result>
<result name="deleteSuccess" type="redirect-action">cinema!listCinema</result>
<result name="toUpdate">cinema/updateCinema.jsp</result>
<result name="updateSuccess" type="redirect-action">cinema!listCinema</result>
<result name="toAddSuccess">cinema/addCinema.jsp</result>
<result name="toAddScreen" type="redirect-action">screen!preAddScreen</result>
<result name="invalid.token" type="redirect-action">cinema!listCinema</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token">
<!-- includeMethods表示包含指定的方法,即对标记为includeMethods的方法进行拦截 -->
<param name="includeMethods">saveCinema,saveCinemaAndtoAddScreen,updateCinema</param>
<!-- 定义被排除的方法名,也就是你action中不被这个拦截器拦截的方法名 -->
<param name="excludeMethods"></param>
-->
</interceptor-ref>
</action>
</package>
</struts>
总结:以上两步即完成了使用Struts2 内置过滤器进行防止后退重复提交的方式。
分享到:
相关推荐
### Struts Token机制防止页面刷新及重复提交 在Web应用开发过程中,特别是在使用MVC框架如Apache Struts进行开发时,防止表单重复提交是一个重要的安全措施。表单重复提交通常发生在用户点击“提交”按钮后,由于...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用...综上所述,Struts2的Token机制是防止Web应用中重复提交的有效工具,通过合理的配置和编程,可以为用户的操作提供更安全的环境。
总结,Struts2的tokenSession机制是JavaEE Web开发中防止重复提交的有效手段,通过生成并校验token,确保每个请求的唯一性,从而保护了业务数据的完整性。在实际项目中,我们需要正确配置和使用这个机制,以提高应用...
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
这里,`defaultStack`包含了Struts2的默认拦截器,`token`拦截器被添加到栈中,并且设置了`includeMethods`参数,指定了哪些方法需要进行重复提交检查。 2. **创建令牌**:当用户首次访问包含表单的页面时,服务器...
Struts2 Token回退刷新是一种防止重复提交的安全机制,尤其在处理并发操作和防止 CSRF(跨站请求伪造)攻击时显得尤为重要。Struts2框架提供了一种令牌验证的方式来确保每个表单提交是唯一的,避免了恶意用户通过...
当用户尝试重复提交表单时,Struts2会检测到Token已经使用过,因此会抛出异常。你可以捕获这个异常并给出相应的提示,例如: ```java public class MyAction extends ActionSupport { @Override public void ...
通过以上方式,Struts2的Token机制有效地防止了表单的重复提交,保证了服务端的处理逻辑正确性和数据的一致性。在实际开发中,结合合理的前端提示,还可以提高用户体验,避免用户因误操作而产生的困扰。
### Struts2防止表单重复提交 #### 一、预备知识 **1. 拦截器配置** 在Struts2框架中,拦截器扮演着非常重要的角色,它能够为框架提供一系列强大的功能支持。例如,拦截器可以用于实现表单验证、文件上传、异常...
综上所述,防止刷新后退重复提交的方法多样,需要根据具体应用场景和需求选择合适的技术方案。在VS2005这样的开发环境中,可以通过结合以上策略,编写C#代码来实现这些功能。例如,利用ASP.NET的ViewState、Session...
### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...
总的来说,Struts2的Token机制是一种有效防止表单重复提交的方法,它通过生成和验证唯一标识来确保每个请求的唯一性,从而保护了业务的正确性和数据的一致性。在实际开发中,根据项目需求和安全策略,我们可以灵活...
在Web应用中,表单重复...开发者在使用时需要注意配置token相关标签和拦截器,并通过设置正确的结果视图跳转类型来防止因刷新页面导致的重复提交。通过这些方法的合理应用,可以有效地提高Web应用的健壮性和用户体验。
### ASP.NET中防止刷新页面造成表单重复提交 在Web应用程序开发中,特别是在使用ASP.NET进行网站构建时,一个常见的问题是表单重复提交。这通常发生在用户通过按下浏览器的F5键来刷新页面的情况下,此时之前的表单...
在Web表单提交中,防止重复提交是一个常见的需求,而Struts2的Token机制就是为了应对这一问题而设计的。Token机制能确保用户只能提交一次表单,避免了由于网络延迟或误操作导致的重复数据录入。 ### 一、Token机制...
1. **配置Action**:在Struts的配置文件(struts.xml或struts.properties)中,为需要防止重复提交的Action添加一个拦截器,通常是`token`和`tokenSession`拦截器。 2. **生成Token**:在Action的准备方法(Prepare...
提交成功后,记得从session中移除Token,防止再次提交时误用已使用过的Token。在Action的处理方法(如`execute()`)中执行此操作: ```java public String execute() { // ...处理业务逻辑... session.remove...
Struts2是一个流行的Java web框架,它...总的来说,Struts2的令牌机制是通过生成和验证令牌来防止重复提交和CSRF攻击的有效方式。开发者应当理解其工作原理,并在需要的地方正确使用,以提高应用程序的安全性和稳定性。
服务器验证Token的有效性,如果已经使用过或者不存在,就拒绝处理请求,从而防止重复提交。 三、Struts中实现Token机制的步骤 1. **配置Action** 在Struts配置文件中,为需要防止重复提交的Action添加一个拦截器...