`

【转】Struts2 Token标签用法

阅读更多
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
分享到:
评论

相关推荐

    struts2的token实现.

    2. **验证Token**:在Action的execute方法或其他处理表单的方法中,Struts2会自动进行Token验证。如果Token无效,Action的execute方法不会被执行,而是返回一个默认的错误结果,比如`input`。 3. **处理Token异常**...

    struts2中token限制表单多次提交

    下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时...

    struts 1的标签的用法详细

    Struts 1 的标签用法使得开发者能够更便捷地创建动态Web应用程序,减少代码量,提高可维护性。虽然Struts 1 已经被更新的Struts 2 和其他现代框架所取代,但理解其基本概念和用法对于理解MVC架构和Web开发历史至关...

    Struts1.x令牌(Token)的使用.rar

    在此,我们将深入探讨Struts1.x令牌的使用方法及其背后的原理。 首先,理解为何需要令牌。在Web应用中,用户可能会意外或恶意地多次点击提交按钮,导致服务器接收到重复的请求,这可能对业务逻辑产生严重影响。另一...

    用struts使用Token机制来实现防重复提交

    创建一个继承自`org.apache.struts2.dispatcher.ng.filter.DefaultActionFilter`的类,重写其中的`isTokenValid()`方法,以便自定义Token的有效性检查。 3. **在JSP页面中添加Token**: 在表单中添加隐藏字段,...

    利用struts的token控制重复提交

    2. **创建Action**: 在Action类中,可以重写`supports()`方法来决定哪些方法需要Token验证,或者直接在方法上使用`@TokenCheck`注解。 ```java public class MyAction extends ActionSupport { @Override public ...

    struts 令牌机制(Token)

    在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...

    Struts2 demo2

    通过这些知识点,我们可以了解到"Struts2 demo2"可能涵盖了Struts2的核心特性,如Action配置、数据校验、类型转换、OGNL表达式、防止重复提交和自定义标签库的使用。这些内容对于理解和实践Java web开发中的MVC模式...

    struts token 防止页面刷新,重复提交

    在Struts框架中,Token机制主要通过`&lt;s:token&gt;`标签和`TokenInterceptor`拦截器实现。但在某些情况下,可能需要自己手动实现Token机制。下面基于提供的代码片段详细介绍如何实现Struts中的Token机制。 #### 三、...

    Jsp struts2标签大全

    本文将详细介绍部分Struts2标签的功能及其使用方法。 #### 二、标签概述 ##### 1. **a 标签** - **功能描述**:创建一个HTML超链接,类似于HTML中的 `&lt;a href=""&gt;` 标签。 - **示例代码**: ```jsp 登录 ``` ...

    struts2标签库实验报告.docx

    通过实验,学员能够掌握Struts2中几个常用标签(如`&lt;s:radio&gt;`、`&lt;s:select&gt;`、`&lt;s:token&gt;`)的应用,并理解OGNL表达式的基本用法。这些知识点对于初学者来说至关重要,因为它们构成了Struts2应用开发的基础。 ####...

    struts2 标签库 帮助文档

    token标签:防用户多次提交表单。 textarea标签:文本域。 updownselct标签:支持选项内容的上下移动。 password表单:密码表单域。 textfield标签:单行文本输入框。 非表单标签: actionerror标签:输出...

    struts token机制解决表单重复提交

    3. **插入表单**:在JSP页面中,使用Struts的`&lt;s:token/&gt;`标签将Token插入到表单的隐藏字段中。 4. **验证Token**:当Action接收到表单请求时,Struts的拦截器会自动检查Token。如果验证通过,Action继续执行;否则...

    struts2教程+struts标签中文API

    通过阅读这两个资源,开发者可以全面了解Struts2框架,掌握其核心概念和使用方法,从而在实际项目中发挥出Struts2的强大功能。在学习过程中,结合实际练习,将理论知识转化为实际技能,是成为一名熟练的Struts2...

    15年9月传智播客视频struts2

    根据提供的文件信息,我们可以...通过对Struts2的工作原理、核心组件、配置方法等方面的学习,可以有效提升开发者在Java Web领域的技能水平。希望上述内容能够帮助您更好地理解Struts2框架,并在实际项目中得到应用。

    Struts2知识点总结

    Struts2标签能够与JSP标准标签库(JSTL)一起使用,提供了更为丰富的功能。 拦截器是Struts2的一个核心组件,它是在请求到达Action之前,用来进行一些预处理工作的对象。拦截器可以执行安全检查、日志记录、数据...

    Struts2 in action中文版

    15.3.1 使用s:token/表单标签 313 15.3.2 令牌拦截器规则的例外 314 15.4 自动显示等待页面 316 15.5 完成CRUD操作的一个动作 317 15.5.1 CRUD 317 15.5.2 拦截器和接口 318 15.5.3 连接各部分 323 15.6 Tiles和...

    详解struts2的token机制和cookie来防止表单重复提交

    1. **添加Token标签**:在需要防止重复提交的JSP页面中,使用Struts2的`&lt;s:token&gt;`标签。这个标签会在表单提交时生成一个唯一的Token,并将其隐藏地包含在表单数据中。 2. **配置Struts2 Action**:在`struts.xml`...

    struts2标签大全

    ### Struts2标签大全 Struts2框架是Java Web开发中的一个重要组成部分,它极大地简化了Web应用程序的开发过程。在Struts2中,标签库(Tag Library)扮演着非常...熟悉这些标签对于使用Struts2进行高效开发至关重要。

    struts1.2之token解决重复提交

    使用`&lt;html:hidden&gt;`标签生成隐藏的Token字段,其属性`property`应与ActionForm中的相应属性一致,这里假设有一个名为`tokenBean`的ActionForm。 通过以上步骤,Struts1.2的Token机制就能有效地防止表单的重复提交...

Global site tag (gtag.js) - Google Analytics