`
longflang
  • 浏览: 65650 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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实现.

    在Web表单提交中,防止重复提交是一个常见的需求,而Struts2的Token机制就是为了应对这一问题而设计的。Token机制能确保用户只能提交一次表单,避免了由于网络延迟或误操作导致的重复数据录入。 ### 一、Token机制...

    struts2中token限制表单多次提交

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

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

    首先,我们需要在Struts2的配置文件(struts.xml)中添加Token拦截器。这个拦截器会处理Token的生成和验证过程。例如: ```xml &lt;interceptor name="token" class="org.apache.struts2.interceptor....

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

    2. 实现TokenAware接口:为了让ActionForm能够访问session中的令牌,需要让ActionForm实现`org.apache.struts.action.TokenAware`接口,并实现`setToken(String token)`方法。 3. 生成令牌:在Action中,如`execute...

    利用struts的token控制重复提交

    3. **生成Token**: 在JSP页面中,使用`&lt;s:token/&gt;`标签生成并隐藏Token。 ```jsp &lt;!-- 表单元素 --&gt; &lt;input type="hidden" name="struts.token" value="&lt;s:token/&gt;" /&gt; 提交" /&gt; ``` 4. **处理结果**: 如果...

    struts 令牌机制(Token)

    在Struts的配置中,可以通过在Action配置中添加`&lt;token&gt;`标签来启用令牌机制,例如: ```xml &lt;interceptor-ref name="token"&gt; &lt;!-- 设置为true表示如果令牌失效,会抛出异常 --&gt; &lt;param name="strict"&gt;true ...

    struts2开发 token.rar

    从标签"源码"和"工具"来看,这个压缩包不仅提供了源代码,还可能包含了关于如何使用Struts2 Token机制的说明或者教程。通过解压并导入到Eclipse或MyEclipse,开发者可以学习和分析实际的代码实现,了解Token如何与...

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

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

    struts2-s标签

    ### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...

    Struts2 demo2

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

    struts2 标签库 帮助文档

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

    struts2标签库实验报告.docx

    通过以上步骤,学员不仅能够了解如何使用Struts2标签库中的关键标签,还能学会如何在实际项目中配置和使用这些标签,从而提高Web应用的安全性和用户体验。这对于初学者来说是非常宝贵的学习经验。

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

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

    struts token的例包

    - 在JSP页面中,通过`s:token`标签生成隐藏字段,将Token放入表单中。 - 提交表单时,`TokenSessionStore`拦截器会自动进行Token验证。 5. **处理Token失效**: - 为了保证安全性,应设置合理的Token过期时间,...

    struts2教程+struts标签中文API

    3. **配置文件**:Struts2使用`struts.xml`配置文件来定义Action、结果类型、拦截器等,通过XML或注解方式实现应用配置。 4. **Interceptor拦截器**:拦截器是Struts2的重要特性,它允许在Action执行前后插入自定义...

    15年9月传智播客视频struts2

    - **内置拦截器**:Struts2提供了一系列内置拦截器,如`params`(参数填充)、`token`(防止重复提交)、`servletConfig`(获取Servlet配置信息)等。 - **自定义拦截器**:可以通过实现`Interceptor`接口或继承`...

    struts2标签的使用

    ### Struts2 标签的使用详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建高效、可维护的应用程序。其中,Struts2 提供了大量的标签库(Tag Library),这些标签...

    struts标签库使用

    本文将详细介绍Struts2标签库中的部分核心功能,包括解决标签换行问题、submit标签的样式调整、以及select标签的使用。 一、Struts2标签换行问题及解决 在默认情况下,Struts2表单元素会自动换行,每个元素占据一...

    struts 1的标签的用法详细

    8. JSP页面使用Struts标签显示数据或进行其他操作。 ### 二、控制器组件 #### 1. struts-config.xml 这是Struts的核心配置文件,定义了Action、ActionForm、ActionMapping等元素,用于指导请求处理和视图渲染。 #...

Global site tag (gtag.js) - Google Analytics