Token的使用方法
使用Token可以防止当用户刷新页面和点击后退按钮时造成的页面表单重复提交的问题:
使用方法如下:
㈠
首先要通过一个页面生成一个Token令牌,生成一个随机数
可以创建一个页面main.jsp
然后在该页面上放置一个按钮或者超连接 ,该超连接指向一个action类
在这个action类中使用
this.saveToken(request); //生成Token
Globals s;
return mapping.findForward("success"); //跳转到增加页面
㈡
在--增加页面--中导入如下两个jar包
<%@ page import="org.apache.struts.taglib.html.Constants" %>
<%@ page import="org.apache.struts.Globals" %>
然后在页面上添加一个隐藏域
<input type="hidden" name="<%=Constants.TOKEN_KEY%>" value="<%=session.getAttribute(Globals.TRANSACTION_TOKEN_KEY)%>"/>
此处的name value中的值都是固定的,不允许改变
㈢
在---AddUserAction-----中,使用isTokenValid(request)验证Token,如果产生的Token令牌随机数不同,则
跳转到错误页面,如果相同则把session中的Token删除,然后进行业务处理
if (!this.isTokenValid(request)) {
return mapping.findForward("error");
}
this.resetToken(request);
//之后跟业务代码
注意:
Hidden的名称必须为Constants.TOKEN_KEY
Hidden的值必须为session.getAttribute(Globals.TRANSACTION_TOKEN_KEY)
分享到:
相关推荐
下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时...
2. **验证Token**:在Action的execute方法或其他处理表单的方法中,Struts2会自动进行Token验证。如果Token无效,Action的execute方法不会被执行,而是返回一个默认的错误结果,比如`input`。 3. **处理Token异常**...
在Struts2中,可以通过配置Action或者全局Interceptor来启用Token插件。通常,你可以在struts.xml配置文件中添加以下内容: ```xml <interceptor name="token" class=...
3. **验证Token:** 在处理表单提交的Action方法中,Struts2的Token拦截器会自动进行Token验证。如果验证失败(比如因为用户刷新页面),拦截器会抛出一个`TokenException`,你可以捕获这个异常并处理。 ```java ...
在你提供的压缩包文件"token"中,可能包含了一个简单的Struts2令牌实例,你可以通过查看源代码学习如何在实际项目中集成和使用令牌机制。学习和理解这个实例,将有助于你更好地理解和应用Struts2的令牌功能。
在此,我们将深入探讨Struts1.x令牌的使用方法及其背后的原理。 首先,理解为何需要令牌。在Web应用中,用户可能会意外或恶意地多次点击提交按钮,导致服务器接收到重复的请求,这可能对业务逻辑产生严重影响。另一...
首先,我们需要在Struts2的配置文件(struts.xml)中添加Token拦截器。这个拦截器会处理Token的生成和验证过程。例如: ```xml <interceptor name="token" class="org.apache.struts2.interceptor....
在JavaEE应用开发中,Struts2框架是一个广泛使用的MVC框架,它提供了一种有效的方式来组织和控制应用程序的行为。然而,随着Web应用的发展,防止重复提交成为一个重要的问题,尤其是在处理金融交易、投票等关键操作...
在Struts的配置文件中定义一个Token拦截器,拦截所有需要防止重复提交的Action,然后在拦截器中实现Token的验证逻辑。 通过这种方式,Struts+Token机制可以有效地防止由于用户误操作或者网络延迟造成的表单重复提交...
2. **创建Action**: 在Action类中,可以重写`supports()`方法来决定哪些方法需要Token验证,或者直接在方法上使用`@TokenCheck`注解。 ```java public class MyAction extends ActionSupport { @Override public ...
在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...
Token(令牌)是一种临时的、唯一的标识符,它通常在服务器端生成,并在客户端的一次性操作中使用。在表单提交过程中,服务器会将Token附加到表单中,当客户端提交表单时,服务器会验证这个Token是否有效且未被使用...
#### 四、在Action中使用Token机制 在Action类中,可以调用`Token.isTokenStringValid`方法来验证Token的有效性。如果Token有效,则继续处理表单提交;否则,可以根据具体情况返回错误信息或重定向到指定页面。 ``...
本文将深入探讨如何在Struts框架中利用Token机制来解决这个问题。 一、表单重复提交问题 表单重复提交可能发生在用户点击提交按钮后,由于网络延迟或刷新页面等原因,导致请求被多次发送到服务器。如果不加以控制,...
在使用Struts + Spring + iBatis的项目中,可以具体地应用上述Token机制: - **项目架构**: - Struts负责View层,Spring在Service层提供事务控制,iBatis用于替代JDBC。 - 所有的页面访问都通过Struts的Action进行...
总之,Struts Token Dozer实例展示了如何在Java Web开发中结合使用Struts的安全特性与Dozer的映射功能,以提高应用的安全性和代码效率。通过深入理解这两个组件的工作原理和它们的结合使用,开发者可以构建出更健壮...
以下是对Struts1.x中使用Token防止提交的详细说明: 1. **理解Token机制**: Token机制的核心思想是在客户端和服务器之间建立一种绑定关系,每个提交请求都必须携带一个服务器生成并已存储的唯一令牌。如果令牌...
3. **插入表单**:在JSP页面中,使用Struts的`<s:token/>`标签将Token插入到表单的隐藏字段中。 4. **验证Token**:当Action接收到表单请求时,Struts的拦截器会自动检查Token。如果验证通过,Action继续执行;否则...
### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...
在Struts框架中,Token机制是一个重要的安全特性,用于防止重复提交(Double Submit)和跨页请求伪造(Cross-Site Request Forgery, CSRF)攻击。下面将详细解释Struts Token的工作原理、应用场景以及如何在实际项目...