使用token标签的时候,Struts2会建立一个GUID(全局唯一的字符串)放在session中,并且会成为一个hidden放在form中。
token拦截器会判断客户端form提交的token和session中保存的session是否equals。如果equals则执行Action。否则拦截器直接返回invaid.token结果,Action对应的方法也不会执行
<form action="${basePath}member!regist.action" method="post" id="registFrom">
<@s.token></@s.token>
action.xml(struts.xml)配置
action name="member" class="com.ff.action.MemberAction">
<result name="invalid.token" type="redirect">member!login.action</result>
<s:token>标签使用很简单,用以避免表单的重复提交,其原理是用户访问页面时,服务器产生一个令牌值一起发送给客户端。当这个页面被提交时,比较客户端和已经保存先前的令牌值,如果相等则清除令牌值,不相等表明表单已被提交,同时产生一个新令牌值,保存到session中。
step 1:在<form>标签里面定义标签<s:token/>
step 2:在struts.xml文件内配置token拦截器
<interceptor-ref name="token">
<param name="excludeMethods">....</param> //这里可以配置token拦截器的排队方法
</interceptor-ref>
<result name=“invaild.token">/***.jsp</result>
step 3:可在页面中添加<s:actionerror>显示重复提交信息
step 4:测试。提交页面后,单击刷新,就自动转到***.jsp
oken 是在上一个action的执行方法后 会产生一个新的token放在session中 key 为“struts.token” <s:token></s:token> 现实再页面的时候会生成俩个隐藏标签 一个叫struts.token.name 一个叫做是你struts.token.name 值作为name的隐藏标签,
提交到后台进行token 比对 不一样返回invaild.token
分享到:
相关推荐
2. **验证Token**:在Action的execute方法或其他处理表单的方法中,Struts2会自动进行Token验证。如果Token无效,Action的execute方法不会被执行,而是返回一个默认的错误结果,比如`input`。 3. **处理Token异常**...
在Struts2中,可以通过配置Action或者全局Interceptor来启用Token插件。通常,你可以在struts.xml配置文件中添加以下内容: ```xml <interceptor name="token" class=...
下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时...
Struts2提供了一种机制,即tokenSession,来解决这个问题。 首先,我们要理解什么是重复提交。在Web环境中,由于网络延迟或用户误操作,可能会导致同一个表单数据被多次提交,这就是重复提交。这种现象可能导致数据...
3. **验证Token:** 在处理表单提交的Action方法中,Struts2的Token拦截器会自动进行Token验证。如果验证失败(比如因为用户刷新页面),拦截器会抛出一个`TokenException`,你可以捕获这个异常并处理。 ```java ...
2. 实现TokenAware接口:为了让ActionForm能够访问session中的令牌,需要让ActionForm实现`org.apache.struts.action.TokenAware`接口,并实现`setToken(String token)`方法。 3. 生成令牌:在Action中,如`execute...
8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做...
在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...
<interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/> <!-- other interceptors --> <interceptor-ref name="token"/> <!-- other interceptors --> ``` 这样,...
- **对指定action方法校验**: 在Struts2中,可以通过XML配置文件定义特定Action类或方法的数据校验规则,以确保用户输入的有效性。 - **对action的所有方法进行校验**: 这种配置允许全局应用校验规则,适用于...
这个名为"struts2开发 token.rar"的压缩包文件可能包含了一个关于如何在Struts2框架中实现Token机制的示例项目。Token机制主要用于防止重复提交,是Web开发中的重要安全实践。 首先,我们来看`.classpath`、`....
在这个实例中,开发者可能已经配置了Struts的拦截器来处理Token,同时在Action执行前后使用Dozer进行对象的映射。具体实现可能涉及到以下步骤: 1. 在Struts配置文件(如struts.xml)中添加Token拦截器,并设置拦截...
### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...
在Action类中,可以调用`Token.isTokenStringValid`方法来验证Token的有效性。如果Token有效,则继续处理表单提交;否则,可以根据具体情况返回错误信息或重定向到指定页面。 ```java if(Token.isTokenStringValid...
**Struts2 拦截器**是在Action执行前后插入的代码片段,它们按照定义的顺序组成一个拦截器链。每个拦截器都有机会处理请求,决定是否允许Action执行,以及如何处理Action的返回结果。拦截器可以用于数据校验、登录...
2. **创建Action**: 在Action类中,可以重写`supports()`方法来决定哪些方法需要Token验证,或者直接在方法上使用`@TokenCheck`注解。 ```java public class MyAction extends ActionSupport { @Override public ...
根据提供的文件信息,我们可以...通过对Struts2的工作原理、核心组件、配置方法等方面的学习,可以有效提升开发者在Java Web领域的技能水平。希望上述内容能够帮助您更好地理解Struts2框架,并在实际项目中得到应用。
在视图层,Struts2提供了一系列增强的组件,位于`org.apache.struts2.components`包中,包括updownselect、doubleselect、datetimepicker、token、tree等,这些组件增强了用户体验,并且支持主题(theme)以自定义...
2. **生成Token**:在Action的准备方法(Prepare Method)或者Action的初始化方法中,生成一个唯一的Token并存入Session。 3. **插入表单**:在JSP页面中,使用Struts的`<s:token/>`标签将Token插入到表单的隐藏...
6. **实践操作**:在 Struts 的 Action 类中,可以定义一个方法处理 token,例如 `checkToken()`。同时,需要在 struts.xml 配置文件中,配置拦截器链,包含 token 相关的拦截器,如 `token` 或 `tokenSession`。 7...