1、首先在请求表单之前:this.saveToken(request);
2、其次表单使用:<html:form>标签
3、再者处理表单处用isTokenValid(request)检查token,然后合法后resetToken(request);
<html:form action="/Login.do?m=doLogin" method = "POST">
<html:text property="username"></html:text>
<html:submit>Submit</html:submit>
</html:form>
package com.tim.beans;
import org.apache.struts.action.ActionForm;
public class UserInfo extends ActionForm{
private static final long serialVersionUID = 6705948863335091123L;
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
public ActionForward Login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
this.saveToken(request);
return mapping.findForward("login");
}
public ActionForward doLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
ActionMessages errors = new ActionMessages();
if(!isTokenValid(request)){
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("表单重复提交!",false));
}
if(!errors.isEmpty()){
saveErrors(request,errors);
return mapping.findForward("info");
}
resetToken(request);
System.out.println("进来了!");
return mapping.findForward("info");
}
<form-beans>
<form-bean name="userInfo" type="com.tim.beans.UserInfo">
<form-property name="username" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<load-on-startup>0</load-on-startup>
分享到:
相关推荐
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
下面将详细解释Struts2如何通过重定向来防止表单重复提交。 首先,理解表单重复提交的场景:用户在提交表单后,由于网络延迟或其他原因,可能会无意中多次点击提交按钮。如果服务器没有处理这些重复请求,那么相同...
本篇文章将深入探讨如何防止表单重复提交,主要关注于基于Struts2框架的解决方案。 首先,理解表单重复提交的原因。用户在点击提交按钮后,如果网络延迟或用户误操作导致页面刷新或再次点击提交,就可能发生重复...
在Web开发中,尤其是使用Struts2框架时,防止重复提交是一个重要的问题,因为它可能导致数据的不一致性或者服务器资源的浪费。Struts2提供了一种通过拦截器来解决这个问题的方法,即`token`拦截器。本文将深入探讨...
综上所述,Struts框架通过Token机制有效地解决了表单重复提交的问题,提供了更健壮的Web应用安全性。正确理解和应用这一机制对于Java Web开发者来说至关重要。在实际项目中,结合其他防御策略,如CSRF防护,可以...
Struts的Token机制主要用来防止用户意外或恶意的多次提交表单,例如在刷新页面时重复提交数据。它的工作原理如下: 1. **生成Token**: 当用户访问一个需要防重复提交的表单时,服务器会生成一个唯一的Token并将其...
Struts是Java Web开发中的一款流行MVC框架,它简化了构建基于JSP的Web应用程序的过程。然而,Web应用在处理表单提交...通过对这些代码的学习和研究,开发者能够熟练地在自己的项目中应用Struts+Token防止表单重复提交。
Struts2提供了几种策略来防止表单的重复提交,确保请求的唯一性和事务的一致性。 一、令牌(Token)机制 Struts2的Token插件是防止重复提交的一种常见方法。这里的"Strut2Token"很可能是指这个插件的应用。它的...
在Web应用程序开发中,一个常见的问题是如何有效地防止表单的重复提交。这不仅能够提高用户体验,还能增强系统的安全性。Struts2作为一款广泛使用的Java Web应用框架,提供了多种方式来解决这一问题。 #### 二、...
总结,Struts2的tokenSession机制是JavaEE Web开发中防止重复提交的有效手段,通过生成并校验token,确保每个请求的唯一性,从而保护了业务数据的完整性。在实际项目中,我们需要正确配置和使用这个机制,以提高应用...
令牌机制是Struts框架用于防止表单重复提交的一种手段。其基本原理是在客户端与服务器之间传递一个随机生成的唯一标识符(即令牌),通过对比客户端提交时携带的令牌与服务器端存储的令牌是否一致来判断请求是否有效...
对于非Struts框架的应用程序,也可以采用类似的Token机制来防止表单重复提交。主要步骤如下: 1. **生成Token** - 在服务器端生成一个随机字符串作为Token值。 - 将这个Token值存储到客户端的某个地方(如Cookie...
通过以上三个步骤,我们成功地实现了在Struts中通过Token来防止表单重复提交的功能。这种方法不仅提高了应用的安全性,还提升了用户体验。在实际项目开发过程中,还需要根据具体需求进一步完善和优化这一机制。
Struts的Token机制是Web应用中防止表单重复提交的一种常用方法。在处理表单提交时,如果用户意外地多次点击了提交按钮,可能会导致数据的重复录入,从而引起不必要的问题,例如订单重复、数据库数据异常等。为了解决...
### Struts的令牌机制:防止重复提交 ...通过以上介绍可以看出,Struts的令牌机制是一种简单而有效的方法,可以帮助开发者轻松地实现对表单重复提交的防护,进而提高应用程序的安全性和用户体验。
Struts2默认提供了一些拦截器来帮助处理这个问题,但如题目所述,由于性能考虑,项目组决定不使用Struts2的标签,因此需要自定义拦截器来实现防止重复提交的功能。 自定义拦截器的实现主要分为以下几个步骤: 1. *...
Struts2是一个流行的Java web框架,它提供了许多强大的特性,其中之一就是防止表单重复提交的机制。表单重复提交是一个常见的问题,特别是在处理敏感数据或执行重要操作时,如投票、付款等。如果用户在网络延迟或者...
下面我们将详细探讨如何使用Struts1的令牌来防止页面重复提交。 ### 1. 令牌机制概述 令牌机制的基本思路是在用户提交表单前,服务器先生成一个唯一的令牌,将其存储在用户的会话(Session)中,并将令牌值通过...
Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时,服务器生成一个Token并将其存储在服务器端,同时将其作为隐藏字段返回给客户端。如果...