`

struts2 <s:token/>标签防止表单重复提交

阅读更多

  对于采用token防止表单重复提交的原理我就不用多说了,大家也应该都知道,在这我只介绍在struts2中如何利用标签实现防止表单的重复提交。   

  首先在表单中加入标签 ,会生成一个隐藏域用于存储系统自动随机生成的token值。然后在action中启用TokenInterceptor,即在struts.xml中加入下面类似代码。 

<action name="register" class="UserAction" method="register">
	<result>register_success.jsp</result>
	<result name="input">register.jsp</result>
	<result name="invalid.token">register.jsp</result>
	<interceptor-ref name="token"></interceptor-ref>
	<interceptor-ref name="defaultStack"></interceptor-ref>
</action>		

  其中<result name="invalid.token">register.jsp</result>”是在发生表单重复提交时,返回给用户提示信息的显示页面,同时还需在显示页面中加入 ;“<interceptor-ref name="token"></interceptor-ref>”是启用TokenInterceptor 如果表单重复提交,会提示The form has already been processed or no token was supplied, please try again。修改国际化文件struts.messages.invalid.token 的键值,提供自己定制的错误信息。比如:struts.messages.invalid.token= 您已经提交了表单,请不要重复提交。

分享到:
评论

相关推荐

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

    本文详细介绍了如何在Struts2框架中使用`&lt;s:token/&gt;`标签和`token`拦截器来防止表单重复提交。通过这种方式,可以有效地避免因重复提交而导致的数据冗余和其他潜在问题。对于开发者来说,理解和掌握这些技术是非常...

    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-s标签

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

    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标签整理

    Struts2的标签库主要包括表单标签、条件判断标签、循环标签、国际化标签等,这些标签简化了页面的开发工作,提高了开发效率。 #### 三、具体标签解析 ##### 1. `&lt;s:a&gt;` - 超链接标签 该标签用于创建超链接,类似于...

    struts2标签大全

    `&lt;s:form&gt;` - 表单标签 创建HTML表单。 ```xml &lt;s:form action="myAction"&gt; &lt;s:textfield name="username"/&gt; &lt;s:submit value="Submit"/&gt; &lt;/s:form&gt; ``` #### 21. `&lt;s:generator&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:...

    下面就介绍下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; 未...

    struts_tag

    `&lt;s:token&gt;` 生成和检查令牌,防止重复提交。 Y. `&lt;s:url&gt;` 创建URL,可以附加参数,例如:`&lt;s:url action="myAction"&gt;&lt;s:param name="param1" value="value1" /&gt;&lt;/s:url&gt;`。 Z. `&lt;s:validate&gt;` 验证表单字段。 ...

    struts2的驱动和防止重复提交

    本文将深入探讨Struts2的属性驱动和模型驱动的区别,以及如何防止表单的重复提交,并讲解如何在表单中正确显示验证信息。 ### 属性驱动与模型驱动 **属性驱动**(Property Driven)是Struts2中的一种常见做法,它...

    struts 2标签库介绍

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

    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 结构,用于复杂的条件判断。 ##### ...

    Structs2标签(初学者).pdf

    18. `&lt;s:token&gt;`标签用于防止表单的重复提交,这是Web应用中常见的一个安全问题。 19. `&lt;s:url&gt;`标签用于生成当前Web应用中的URL链接。 20. `&lt;s:formaction&gt;`标签用于指定表单提交的目标action。 了解这些标签的...

    struts2中防止重复提交的方法

    总之,防止重复提交是Web应用开发中的重要一环,可以通过Struts2提供的 `&lt;s:token&gt;` 标签结合拦截器,或者结合客户端验证和服务器端状态管理等多种方式来实现。正确实施这些措施,可以有效避免数据的不一致性,提高...

    Struts2 防重复提交Demo

    - `s:token`标签必须与`&lt;s:form&gt;`标签一起使用,因为Struts2的拦截器通常只在表单提交时起作用。 - 如果你使用的是GET方法,记得设置`&lt;s:form method="get"&gt;`,因为默认是POST方法。 - 在实际应用中,可能还需要结合...

    利用struts的token控制重复提交

    Struts的Token机制主要用来防止用户意外或恶意的多次提交表单,例如在刷新页面时重复提交数据。它的工作原理如下: 1. **生成Token**: 当用户访问一个需要防重复提交的表单时,服务器会生成一个唯一的Token并将其...

    struts2中token限制表单多次提交

    当用户尝试重复提交表单时,Struts2会检测到Token已经使用过,因此会抛出异常。你可以捕获这个异常并给出相应的提示,例如: ```java public class MyAction extends ActionSupport { @Override public void ...

    Jsp struts2标签大全

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

    解决在struts 中可以通过token 来重复提交的问题

    ### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...

Global site tag (gtag.js) - Google Analytics