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

防止表单重复提交的几种方法(转)

    博客分类:
  • JAVA
阅读更多
防止表单重复提交的几种方法
在使用action处理表单(写入数据库操作)的过程,往往会出现重复插入数据库的现像,为防止这一现象的发生,给数据库带来不必要的垃圾数据,对重复提交做一下限制显示有必要.
下面提供几种常用的方法.
1,页面脚本实现,当提交过一次表单后,将提交按钮变为不可用,就不会再触发写入数据库的操作.
2,解发写入数据库操作的action之后,调用formbean中的resetform方法,将form中的数据库清空,当然提交form中数据库有一定限制时会起作用,允许向数据库写入null时,就不起作用了.
3,解发写入数据库操作的action之后,不再用forward的方法,转发页面请求,直接采用sendRedirect方法,将URL地址中触发写入数据库操作的action转到一个新的页面,再刷新页面,不会重复提交数据.
4,采用struts中token方法实现.
简单实现如下:
两个action,一个test.jsp页面.
test.jsp:
<a href="go">转到填写表单的页面</a>
其中action:go写入代码:saveToken(request);
写入数据提交表单的action,作如下处理:

1.if(!isTokenValid(request, true)){   
2.            resetToken(request);   
3.            System.out.println("不能重复提交");   
4.        }else{   
5.            saveToken(request);   
6.            System.out.println("能提交");   
7.        }   
8.//      if(!isTokenValid(request)){   
9.//          saveToken(request);   
10.//          //相关代码   
11.//          System.out.println("不能重复提交");   
12.//      }else{   
13.//          resetToken(request);   
14.//          //相关代码   
15.//          System.out.println("能提交");   
16.//      }  
分享到:
评论

相关推荐

    防止Layui form表单重复提交的实现方法

    下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交,可以在标签中使用onsubmit="return false;"属性。这个属性的作用是在表单提交时返回false,阻止...

    防止表单重复提交

    防止表单重复提交的常见策略有以下几种: 1. **客户端验证**:在JavaScript中,可以监听表单提交事件,一旦表单提交,禁用提交按钮,防止用户再次点击。但这种方法并不完全可靠,因为JavaScript可以被禁用,或者...

    springboot2.1+redis+拦截器 防止表单重复提交

    在现代Web应用开发中,防止表单重复提交是一项重要的任务,因为这可能导致数据不一致性和服务器资源浪费。本文将深入探讨如何使用Spring Boot 2.1、Redis和拦截器来实现这一功能。以下是对这个主题的详细解释: ...

    几种防止表单重复提交的方法

    几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的文章曾说...

    浅谈利用Session防止表单重复提交

    浅谈利用Session防止表单重复提交 Session是Web应用程序中的一种机制,用于存储用户的会话信息。在Web应用程序中,表单重复提交是一个常见的问题,可能会导致数据库中产生冗余数据,浪费数据库资源。利用Session...

    PHP防止表单重复提交的几种常用方法汇总

    以上几种方法各有优缺点,适用于不同的场景。在实际开发中,开发者可以结合具体情况,选择一种或多种方法组合使用,以达到最佳的防止表单重复提交的效果。总的来说,这些方法都能够有效地减少因表单重复提交导致的...

    sturts2防止表单的重复提交 token

    总的来说,Struts2的Token机制是一种有效防止表单重复提交的方法,它通过生成和验证唯一标识来确保每个请求的唯一性,从而保护了业务的正确性和数据的一致性。在实际开发中,根据项目需求和安全策略,我们可以灵活...

    Struts2解决表单重复提交

    在Web应用中,表单重复提交是一种常见的问题。通常,这种问题发生在用户在提交表单后,由于网络延迟或用户的误操作再次点击提交按钮,或者在表单提交后刷新浏览器页面。这两种情况都可能导致服务器接收到重复的请求...

    struts数据回显、模型驱动、防止表单重复提交

    Struts提供了几种防止表单重复提交的方法: - token机制:服务器在处理表单请求前生成一个唯一的token,并将其存储在session中,同时将token添加到表单隐藏字段。当表单提交时,服务器检查session中的token是否已...

    表单重复提交问题1

    每种策略都有其适用场景,开发者应根据实际需求选择合适的方法来防止表单重复提交,确保系统数据的一致性和完整性。在开发过程中,测试这一场景至关重要,以确保用户的操作不会对系统造成意外影响。

    Struts2防止表单重复提交示例

    在Struts2中防止表单重复提交的过程主要包括以下几个步骤: 1. **生成Token**:当用户发起表单请求时,服务器会生成一个唯一的Token并将其存储在服务器的会话(Session)中,同时将这个Token作为隐藏字段放入到HTML...

    Java表单重复提交的避免方法

    Java表单重复提交是Web开发中常见的问题,可能导致数据不一致和系统异常。要理解这个问题,首先要明白表单提交的基本流程:用户打开表单页面,填写信息,然后点击提交按钮,浏览器向服务器发送请求,服务器处理请求...

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    在Servlet中,通常采用几种方法来避免重复提交: 1. **Session状态管理**:在接收到用户提交请求后,可以在Session中设置一个标志,如"formSubmitted",然后在后续的请求中检查这个标志,如果已存在则忽略请求。 2...

    php 防止表单重复提交两种实现方法

    本文将详细介绍PHP中防止表单重复提交的两种实现方法。 ### 前端解决方案 前端解决方案依赖于客户端的JavaScript以及CSS样式来实现。这种方法的优点是减少服务器的负担,缺点是安全性相对较低,因为客户端的代码有...

    ThinkPHP防止重复提交表单的方法实例分析

    本文将详细介绍几种在ThinkPHP中防止表单重复提交的方法,并分析其原理和实现。 1. 页面跳转法:这是最简单直接的方法,通过在表单提交后将页面重定向到一个新的地址,而不是返回原页面。这样用户即使点击了后退...

    php防止form重复提交的方法

    在PHP开发中,防止表单重复提交是一个常见的需求,主要是为了避免用户因网络延迟、误操作或恶意行为导致的数据重复录入。以下是几种常见的解决方法: 1. **客户端脚本控制**: 使用JavaScript可以有效地防止用户在...

    PHP实现防止表单重复提交功能【基于token验证】

    总之,PHP通过基于token的验证可以有效地防止表单重复提交,但需要根据具体的应用场景和需求进行优化和调整。在实际开发中,还可以结合其他策略,如记录提交状态、使用cookie等,以提供更全面的防护。

Global site tag (gtag.js) - Google Analytics