`
wgx198302
  • 浏览: 31266 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2 <s:token/>标签<转>

阅读更多
Struts2 <s:token/>标签
转自“http://noknower.iteye.com/blog/271796”
关键字: struts2 <s:token/>标签
1、使用Struts2的表单标签,其中需要增加token标签。如下:
……
Java代码

   1. <%@ taglib uri="/struts-tags" prefix="s" %> 
   2. …… 
   3. <s:form action="page1" theme="simple"> 
   4. <s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/> 
   5. <s:token/> 
   6. <s:reset/><s:submit/> 
   7.    </s:form> 

<%@ 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拦截器。如下:
Java代码

   1. <?xml version="1.0" encoding="UTF-8"?> 
   2. <!DOCTYPE struts PUBLIC 
   3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
   4. "http://struts.apache.org/dtds/struts-2.0.dtd"> 
   5. <struts> 
   6.  
   7. <package name="lee" extends="struts-default"> 
   8. <action name="page1" class="org.bruce.Page1"> 
   9. <interceptor-ref name="defaultStack" /> 
  10. <interceptor-ref name="token" /> 
  11. <result>/page1.jsp</result> 
  12. <result name="invalid.token">/page1error.jsp</result> 
  13. </action> 
  14. </package> 
  15. </struts> 

<?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>

注意,需要name为invaid.token的result。这是当拦截器判断是重复提交的时候,会转向的结果。

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对应的方法也不会执行
分享到:
评论

相关推荐

    struts2-s标签

    而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. &lt;s:...

    struts2标签整理

    `&lt;s:token&gt;` - 令牌标签 用于生成防CSRF攻击的令牌。 ```jsp &lt;s:token name="csrfToken"/&gt; ``` 通过以上详细介绍,我们可以看出Struts2的标签库非常丰富,涵盖了Web应用开发中的各个方面,为开发者提供了极大的...

    Struts标签集合简介

    `&lt;s:token&gt;` 用于防止重复提交,`&lt;s:tree&gt;` 创建树形结构,`&lt;s:treenode&gt;` 定义树节点,`&lt;s:updownselect&gt;` 创建可上下选择的多选框,`&lt;s:url&gt;` 生成URL,通常与Action关联。 以上就是Struts标签的基本介绍,它们极...

    struts2标签大全

    `&lt;s:token&gt;` - 令牌标签 用于防止跨站请求伪造(CSRF)攻击。 ```xml &lt;s:token/&gt; ``` #### 49. `&lt;s:tree&gt;` - 树形标签 创建树形结构。 ```xml &lt;s:tree value="treeData" nodeLabel="%{#node.label}"/&gt; ``` ####...

    struts2标签解释

    `&lt;s:token&gt;`标签用于防止重复提交,与Struts2的Token拦截器配合使用。 `&lt;s:tree&gt;`标签用于生成树形结构,适用于层次数据的展示。 `&lt;s:treenode&gt;`定义树结构中的节点。 T. `&lt;s:updownselect&gt;`,`&lt;s:url&gt;`: `&lt;s:...

    struts 2标签库介绍

    虽然 Struts 2 不再推荐使用 Struts 1.x 的标签,但在某些情况下仍然可能见到 `&lt;s:bean&gt;` 标签。此标签用于访问 JavaBean 的属性值。例如:`&lt;s:bean name="user" property="firstName"/&gt;`,这里的 `name` 指定了 ...

    下面就介绍下Struts2每个标签的用法(有错请指正):

    `&lt;s:if&gt;`、`&lt;s:elseif&gt;`、`&lt;s:else&gt;` 标签 - **用途**:用于条件判断。 - **示例**: ```xml &lt;s:if test="%{isLoggedIn}"&gt; 已登录 &lt;/s:if&gt; &lt;s:elseif test="%{isGuest}"&gt; 游客 &lt;/s:elseif&gt; &lt;s:else&gt; 未...

    struts2标签的使用

    - 示例:`&lt;s:choose&gt;&lt;s:when test="%{#session.user == 'admin'}"&gt;Admin Panel&lt;/s:when&gt;&lt;s:otherwise&gt;Guest&lt;/s:otherwise&gt;&lt;/s:choose&gt;` - 用途:类似于 Java 中的 switch-case 结构,用于复杂的条件判断。 ##### ...

    Jsp struts2标签大全

    &lt;s:hidden name="sessionToken" value="%{token}"/&gt; ``` ##### 23. **i18n 标签** - **功能描述**:用于国际化和本地化。 - **示例代码**: ```jsp &lt;s:i18n code="welcome.message" bundle="messages"/&gt; ``` ...

    【原创】Struts2防止表单重复提交.doc

    Struts2框架提供了一种简单有效的方式来解决这一问题,即通过`&lt;s:token/&gt;`标签和相关的拦截器机制来实现。 #### 二、Struts2框架简介 Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并且进行了...

    struts_tag

    `&lt;s:param&gt;` 传递参数给其他标签,例如:`&lt;s:a href="myAction.action"&gt;&lt;s:param name="param1" value="value1" /&gt;&lt;/s:a&gt;`。 P. `&lt;s:password&gt;` 用于创建密码输入框,例如:`&lt;s:password name="myPassword" /&gt;`。 ...

    Structs2标签(初学者).pdf

    2. `&lt;s:action&gt;`标签用于在Struts2的配置文件中声明一个action。它在处理Web请求时起到关键作用。 3. `&lt;s:actionerror&gt;`和`&lt;s:actionmessage&gt;`分别用于显示action产生的错误信息和消息信息。 4. `&lt;s:append&gt;`标签...

    JSP_struts2标签大全.doc

    ### JSP_Struts2标签详解 #### 一、引言 在Java Web开发领域中,Struts2框架凭借其强大的功能和灵活性深受开发者喜爱。为了更高效地进行表单处理和页面展示,Struts2提供了丰富的标签库。本文将详细介绍JSP_Struts...

    struts2的驱动和防止重复提交

    &lt;s:token name="struts2" /&gt; &lt;s:submit value="Submit" /&gt; &lt;/s:form&gt; ``` 然后,在Action配置中,添加`token`拦截器: ```xml &lt;action name="register" class="com.struts2.action.RegisterAction"&gt; &lt;result ...

    struts标签库使用

    Struts2的`s:select`标签用于创建下拉列表。以下是一些关键属性的介绍: 1. `list`属性:这是必须设置的属性,用于填充下拉列表的数据,可以是List、Map、Set等可迭代对象。 2. `listKey`和`listValue`属性:当`...

    struts2中防止重复提交的方法

    Struts2 提供了一个称为 `&lt;s:token&gt;` 的标签,用于生成一个唯一的标识符,并将其存储在 session 中。当表单提交时,这个标识符会一同发送到服务器。服务器端的拦截器(如 `token` 拦截器)会检查这个标识符,如果...

    struts2的令牌机制

    &lt;interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/&gt; &lt;interceptor-stack name="tokenStack"&gt; &lt;interceptor-ref name="defaultStack"/&gt; &lt;interceptor-ref name="token"/&gt; &lt;/...

    struts2.0的总结

    2. **数据展示标签**:例如 `&lt;s:property&gt;`、`&lt;s:text&gt;` 等,用于显示 Action 中的数据。 ```jsp &lt;s:property value="message"/&gt; &lt;s:text name="welcome.message"/&gt; ``` 3. **验证标签**:例如 `&lt;s:fielderror&gt;...

Global site tag (gtag.js) - Google Analytics