1、使用Struts2的表单标签,其中需要增加token标签。如下:
……
<%@ taglib uri="/struts-tags" prefix="s" %>
……
<s:form action="page1" theme="simple">
<s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/>
<s:token/>
<s:reset/><s:submit/>
</s:form>
2、在struts配置文件中增加token拦截器。(token 和 token-session 拦截器的启用,是在 struts.xml 配置文件中,既可以为包启用,也可以单独为某个 action 启用)
2.1 为 Action 启用 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="lee" extends="struts-default">
<action name="page1" class="org.bruce.Page1">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result>/page1.jsp</result>
<result name="invalid.token">/page1error.jsp</result>
</action>
</package>
</struts>
2.2 为包启用 token
注意,需要name为invaid.token的result。这是当拦截器判断是重复提交的时候,会转向的结果。
<package name="lee" extends="struts-default">
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="token"/>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />
<action name="page1" class="org.bruce.Page1">
<result>/page1.jsp</result>
<result name="invalid.token">/page1error.jsp</result>
</action>
</package>
3、invaid.token页面打印错误信息,一样可以使用struts标签。如下:
<s:actionerror/>
理解:
1、JSP使用<s:token/>标签的时候,Struts2会建立一个GUID(全局唯一的字符串)放在session中,并且会成为一个hidden放在form中。
2、token拦截器会判断客户端form提交的token和session中保存的session是否equals。如果equals则执行Action。否则拦截器直接返回invaid.token结果,Action对应的方法也不会执行
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yukang_ky/archive/2009/02/05/3863798.aspx
分享到:
相关推荐
在Web表单提交中,防止重复提交是一个常见的需求,而Struts2的Token机制就是为了应对这一问题而设计的。Token机制能确保用户只能提交一次表单,避免了由于网络延迟或误操作导致的重复数据录入。 ### 一、Token机制...
下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时...
首先,我们需要在Struts2的配置文件(struts.xml)中添加Token拦截器。这个拦截器会处理Token的生成和验证过程。例如: ```xml <interceptor name="token" class="org.apache.struts2.interceptor....
2. 实现TokenAware接口:为了让ActionForm能够访问session中的令牌,需要让ActionForm实现`org.apache.struts.action.TokenAware`接口,并实现`setToken(String token)`方法。 3. 生成令牌:在Action中,如`execute...
3. **生成Token**: 在JSP页面中,使用`<s:token/>`标签生成并隐藏Token。 ```jsp <!-- 表单元素 --> <input type="hidden" name="struts.token" value="<s:token/>" /> 提交" /> ``` 4. **处理结果**: 如果...
在Struts的配置中,可以通过在Action配置中添加`<token>`标签来启用令牌机制,例如: ```xml <interceptor-ref name="token"> <!-- 设置为true表示如果令牌失效,会抛出异常 --> <param name="strict">true ...
从标签"源码"和"工具"来看,这个压缩包不仅提供了源代码,还可能包含了关于如何使用Struts2 Token机制的说明或者教程。通过解压并导入到Eclipse或MyEclipse,开发者可以学习和分析实际的代码实现,了解Token如何与...
在Struts框架中,Token机制主要通过`<s:token>`标签和`TokenInterceptor`拦截器实现。但在某些情况下,可能需要自己手动实现Token机制。下面基于提供的代码片段详细介绍如何实现Struts中的Token机制。 #### 三、...
### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...
通过这些知识点,我们可以了解到"Struts2 demo2"可能涵盖了Struts2的核心特性,如Action配置、数据校验、类型转换、OGNL表达式、防止重复提交和自定义标签库的使用。这些内容对于理解和实践Java web开发中的MVC模式...
token标签:防用户多次提交表单。 textarea标签:文本域。 updownselct标签:支持选项内容的上下移动。 password表单:密码表单域。 textfield标签:单行文本输入框。 非表单标签: actionerror标签:输出...
通过以上步骤,学员不仅能够了解如何使用Struts2标签库中的关键标签,还能学会如何在实际项目中配置和使用这些标签,从而提高Web应用的安全性和用户体验。这对于初学者来说是非常宝贵的学习经验。
3. **插入表单**:在JSP页面中,使用Struts的`<s:token/>`标签将Token插入到表单的隐藏字段中。 4. **验证Token**:当Action接收到表单请求时,Struts的拦截器会自动检查Token。如果验证通过,Action继续执行;否则...
- 在JSP页面中,通过`s:token`标签生成隐藏字段,将Token放入表单中。 - 提交表单时,`TokenSessionStore`拦截器会自动进行Token验证。 5. **处理Token失效**: - 为了保证安全性,应设置合理的Token过期时间,...
3. **配置文件**:Struts2使用`struts.xml`配置文件来定义Action、结果类型、拦截器等,通过XML或注解方式实现应用配置。 4. **Interceptor拦截器**:拦截器是Struts2的重要特性,它允许在Action执行前后插入自定义...
- **内置拦截器**:Struts2提供了一系列内置拦截器,如`params`(参数填充)、`token`(防止重复提交)、`servletConfig`(获取Servlet配置信息)等。 - **自定义拦截器**:可以通过实现`Interceptor`接口或继承`...
### Struts2 标签的使用详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建高效、可维护的应用程序。其中,Struts2 提供了大量的标签库(Tag Library),这些标签...
本文将详细介绍Struts2标签库中的部分核心功能,包括解决标签换行问题、submit标签的样式调整、以及select标签的使用。 一、Struts2标签换行问题及解决 在默认情况下,Struts2表单元素会自动换行,每个元素占据一...
8. JSP页面使用Struts标签显示数据或进行其他操作。 ### 二、控制器组件 #### 1. struts-config.xml 这是Struts的核心配置文件,定义了Action、ActionForm、ActionMapping等元素,用于指导请求处理和视图渲染。 #...