如果避免重复提交呢?
请知道的详细说下,或者把文章的链接地址写下也好。
应用环境是tomcat,struts1.2,jsp,hibernate
下面是问题,请看到后能给一个解决方案。
1。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交
。然后服务器处理完毕返回到一个新的列表页面。此时刷新页面,则服务器当作重复提交对待。
2。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交
。然后服务器处理时发生一个异常,于是返回一个错误页面,告诉用户哪个字段有错误,然后用户点击返回按钮,返回上一个页面,再次提交页面时,用户器则把这次的提交当作了重复提交对待。
3。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交
,服务器还没有处理完毕时,用户等不及了,再次单击提交按钮,则struts的token机制不会把此当作重复提交,而是会两样处理这次的提交。
jsp 中插入代码 <s:taken/>
<form name="form" id="creditChangeform" method="post">
<s:token></s:token>
</form>
struts.xml中配置
<action name="addcashpoint" class="com.action.member.MemberCashPointAction" method="addCashPoint">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="token"/>
<result name="invalid.token">/WEB-INF/error.jsp</result>
</action>
Web应用的无限制特性会给你的应用带来很多问题。这里的问题是客户端控制
着访问Web应用的请求,你可能得到非预期的不同顺序的Web应用请求,或者多次得到相同的请求。当用户不止一次单击Web表单的提交按钮时就会发生这个
问题。因为在每次单击时浏览器都会发送表单的请求信息,或者表单提交成功并显示新页面以后,你单击重新加载按钮也会发生问题。这种情况相当危险,因为表单
提交是要求服务器完成某种操作的信号,并且许多action(比如,在两个银行账户之间转账)不应该执行多次。
WebWork的一个高级特性是默认提供检查重复提交的机制,WebWork可以为每个表单提供一个独一无二
的标记(token)。WebWork通过以下方式支持这个特性。首先WebWork为视图端提供一个<ww:token>JSP标签,然后
在action运行之前使用interceptor检验表单标记(token)是否正确。如图15-4所示,这两个部分
(<ww:token>和interceptor)通过保存在session中的状态一起工作,然后在允许action运行之前检查标记
(token)的名称和值是否正确。请注意,表单标记(token)只是解决问题的一个部分。为了最大可能地减少用户偶尔重新提交表单的机会,你在处理完
提交的表单以后应该使用redirect重新转发结果。

图15-4 标记(token)标签和标记(token)interceptor在一起工作,
用于在action每次执行前验证token
分享到:
相关推荐
### 利用Token机制解决重复提交问题 在Web应用开发中,防止表单的重复提交是一个常见的需求。本文将深入探讨如何通过Token机制来解决这一问题,并提供详细的实现步骤及原理解析。 #### 一、Token机制简介 Token...
本文将详细介绍如何在Struts框架中利用Token机制来避免重复提交问题。 #### 一、什么是重复提交问题? 重复提交问题通常发生在用户点击“提交”按钮后网络延迟导致页面加载缓慢的情况下,用户可能会多次点击提交...
本话题将探讨如何在Struts 1.2中利用Token机制来解决HTTP请求的重复提交问题,这是一种常见的防止用户意外或恶意多次点击提交按钮导致数据异常的策略。 一、重复提交问题 在Web应用中,如果一个表单被用户意外或者...
在IT行业中,尤其是在Web开发领域,"Token解决冲突提交"是一个重要的概念,它涉及到用户并发操作和数据一致性的问题。在孙维琴老师的addressbook实例中,这个问题被巧妙地解决,结合了Struts和Hibernate这两个流行的...
总的来说,Struts Token机制通过维护一个临时的、一次性使用的Token,有效地解决了Web应用中的表单重复提交问题,提高了系统的稳定性和安全性。在实际开发中,应根据项目需求灵活运用并优化此机制。
一、表单重复提交问题 表单重复提交可能发生在用户点击提交按钮后,由于网络延迟或刷新页面等原因,导致请求被多次发送到服务器。如果不加以控制,可能会导致同一份数据被处理多次,从而对数据库造成不必要的影响。 ...
首先,我们来了解一下什么是表单重复提交问题。当用户填写并提交一个表单后,如果网络延迟或者用户误操作,可能会导致同一份表单数据被多次提交。这对于诸如转账、下单等业务来说,可能会带来严重后果。 Struts2的...
在提供的压缩包文件"struts+token机制解决表单重复提交"中,可能包含了具体的Struts配置文件、Action类、Interceptor实现以及示例代码,可以帮助读者更深入地理解并实践这个机制。通过对这些代码的学习和研究,...
在Web应用中,表单重复提交是一个常见的问题,可能导致数据的不一致性。为了解决这个问题,我们可以使用Token机制。在SSM(Spring、SpringMVC、MyBatis)开发框架中,结合注解和拦截器,可以有效地实现表单重复提交...
通过以上方法,Struts的Token机制能有效防止Web应用中的重复提交问题,确保数据的准确性和一致性。不过,随着技术的发展,现代框架如Spring Boot等提供了更先进的解决方案,例如CSRF(跨站请求伪造)保护,可以考虑...
总结,Struts2的tokenSession机制是JavaEE Web开发中防止重复提交的有效手段,通过生成并校验token,确保每个请求的唯一性,从而保护了业务数据的完整性。在实际项目中,我们需要正确配置和使用这个机制,以提高应用...
6. **最佳实践**:在实际开发中,通常会结合前端控制(如JavaScript禁用提交按钮)和后端控制(如Token机制)双重保险,以最大程度地减少重复提交的风险。 7. **注意事项**:为了防止Session劫持或令牌被盗用,应...
Struts的Token机制是Web应用中防止表单重复提交的一种常用方法。在处理表单提交时,如果用户意外地多次...在阅读《用Struts的Token机制解决表单重复提交.doc》文档时,可以更深入地学习如何在实际项目中应用这一机制。
Struts2提供了一种名为“token”的机制来解决这个问题。 **什么是Token机制?** Token机制是一种防止重复提交的方法,它通过在客户端(通常是浏览器的session或者cookie)和服务器端存储一个唯一的令牌,确保每个...
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
通过上述介绍可以看出,Struts的Token机制提供了一种简单而有效的解决方案来避免表单重复提交的问题。开发者只需要遵循一定的编码规范和逻辑结构,就可以轻松地在自己的项目中实现这一机制。这对于提高Web应用的数据...
为了解决这一问题,我们可以采用自定义注解结合Redis来实现一个防止表单重复提交的解决方案。 首先,让我们理解自定义注解的核心思想。注解是一种元数据,它提供了在代码中添加信息的方式,这些信息可以被编译器或...
总的来说,防止用户多次重复提交是一个多维度的解决方案,需要前端、后端和数据库共同协作。前端通过禁用按钮防止用户快速点击,后端通过session或token机制确保请求的独特性,数据库则作为最后一道防线,确保数据的...