防止表单重复提交的几种方法
在使用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,作如下处理:
if(!isTokenValid(request, true)){
resetToken(request);
System.out.println("不能重复提交");
}else{
saveToken(request);
System.out.println("能提交");
} // if(!isTokenValid(request)){
// saveToken(request);
// //相关代码
// System.out.println("不能重复提交");
// }else{
// resetToken(request);
// //相关代码
// System.out.println("能提交");
// }
分享到:
相关推荐
在现代Web应用开发中,防止表单重复提交是一项重要的任务,因为这可能导致数据不一致性和服务器资源浪费。本文将深入探讨如何使用Spring Boot 2.1、Redis和拦截器来实现这一功能。以下是对这个主题的详细解释: ...
在Web开发中,表单重复提交是一个常见的问题,可能导致数据的冗余或错误。JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最...
为了确保用户在提交表单时不会无意或有意地多次发送请求,我们需要实施有效的防止表单重复提交的策略。以下是一些关键知识点: 1. **表单重复提交的类型**: - **用户行为**:用户可能意外按下刷新按钮,导致已...
防止表单重复提交的方法(简单的token方式),内附实现代码及实现思路。
在Web开发中,防止表单重复提交是一个重要的问题,它能确保用户操作的唯一性和数据的一致性。ThinkPHP 3.2 是一个基于MVC模式的PHP开发框架,提供了丰富的功能来帮助开发者构建安全、高效的应用。在这个场景中,我们...
AOP是面向切面编程,允许开发者定义“切面”,这些切面可以封装跨越多个对象的行为,如日志记录、事务管理或,就像在这个场景中,防止表单重复提交。AOP的核心概念是“切点”(Pointcut)和“通知”(Advice)。切点...
浅谈利用Session防止表单重复提交 Session是Web应用程序中的一种机制,用于存储用户的会话信息。在Web应用程序中,表单重复提交是一个常见的问题,可能会导致数据库中产生冗余数据,浪费数据库资源。利用Session...
为了解决这一问题,我们可以采用自定义注解结合Redis来实现一个防止表单重复提交的解决方案。 首先,让我们理解自定义注解的核心思想。注解是一种元数据,它提供了在代码中添加信息的方式,这些信息可以被编译器或...
下面将详细解释Struts2如何通过重定向来防止表单重复提交。 首先,理解表单重复提交的场景:用户在提交表单后,由于网络延迟或其他原因,可能会无意中多次点击提交按钮。如果服务器没有处理这些重复请求,那么相同...
在Struts2中防止表单重复提交的过程主要包括以下几个步骤: 1. **生成Token**:当用户发起表单请求时,服务器会生成一个唯一的Token并将其存储在服务器的会话(Session)中,同时将这个Token作为隐藏字段放入到HTML...
使用Redis和Spring Boot来防止表单重复提交的基本思路是:在接收到表单提交请求后,生成一个唯一的请求标识(例如,基于UUID),并将其作为键存储到Redis中,设置一个适当的过期时间。当服务器接收到新的请求时,会...
几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的文章曾说...
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
在Web开发中,防止表单重复提交是一个常见的需求,特别是在涉及关键操作如用户登录、支付等场景下。JavaScript作为客户端脚本语言,可以用来实现这一功能,以避免用户无意或恶意地连续点击提交按钮,导致服务器接收...
本主题将深入探讨Struts框架中的数据回显、模型驱动以及如何防止表单重复提交,这些都是在实际开发中非常关键且实用的技术点。 1. 数据回显: 数据回显是指在用户提交表单后,服务器端处理数据并返回结果页面时,将...