在服务器端判断表单是否重复提交,主要可以考虑在页面之间通过Session共享标志变量的方法来实现,即在客户端页面设置Session中的标志变量,然后在服务器段对Session中的标志变量进行判断。
1.新建一个ServerTest.jsp文件,代码如下:
<%@ page language="java" contentType="text/html; charset=Gb2312"
pageEncoding="Gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>提交页面</title>
</head>
<%
//设置标志变量SubmitFlag值ServerTest.jsp
session.putValue("SubmitFlag","ServerTest.jsp");
%>
<body bgcolor="#ffffff">
<form name="form_client" action="ServerSubmit.jsp">
<input type="checkbox" name="check_1" checked=true/>大连海事大学
<input type="submit" name="submitok"/>
</form>
</body>
</html>
2.新建一个ServerSubmit.jsp,代码如下:
<%@ page language="java" contentType="text/html; charset=Gb2312"
pageEncoding="Gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Gb2312">
<title>服务器端程序</title>
<%
String PageFlag;
PageFlag=(String) session.getValue("SubmitFlag");
if(PageFlag=="Over"){
out.println("重复提交页面!");
}else{
//设置标志变量SubmitFlag值为Over,表示已经提交
session.putValue("SubmitFlag","Over");
out.println("正常业务逻辑处理...请等待!!!");
}
%>
</head>
<body>
</body>
</html>
3.单击“提交查询内容”后,单击“后退”,再次单击“提交查询内容”按钮就会提示重复提交错误。
分享到:
相关推荐
服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...
在ASP.NET web应用程序中,表单重复提交是一个常见的问题,可能导致数据不一致或者数据库操作的冗余。为了确保用户在提交表单时不会无意或有意地多次发送请求,我们需要实施有效的防止表单重复提交的策略。以下是...
如何避免Web应用中的表单重复提交 在Web应用中,避免表单的重复提交是一个棘手的问题。用户在提交表单时可能因为网络速度的原因,或者网页被恶意刷新,导致同一条记录重复插入到数据库中。这篇文章将探讨如何从...
在Web开发中,用户表单重复提交是一个常见的问题,它可能导致数据冗余或者数据库状态的不一致。本示例提供了一种解决方案,包括在前端JavaScript和后端进行处理,以防止用户因网络延迟或误操作导致的多次提交。 ...
在Web应用程序开发中,特别是在使用ASP.NET进行网站构建时,一个常见的问题是表单重复提交。这通常发生在用户通过按下浏览器的F5键来刷新页面的情况下,此时之前的表单数据会被再次提交到服务器端。这不仅可能导致...
在Web开发中,防止表单重复提交是一个重要的问题,它能确保用户操作的唯一性和数据的一致性。ThinkPHP 3.2 是一个基于MVC模式的PHP开发框架,提供了丰富的功能来帮助开发者构建安全、高效的应用。在这个场景中,我们...
总之,防止表单重复提交的方法可以分为客户端和服务器端两个层面。通过组合使用JavaScript和PHP,可以较好地防止用户无意或有意地多次提交表单,从而保证Web应用的稳定性和数据的准确性。在实现时,开发者应当选择...
在描述中提到的“采用Session存储隐藏的状态,提交时判断状态的一致性”,这是防止重复提交的一种有效技术。具体步骤如下: 1. **状态存储**:当用户首次提交表单时,将一些关键的数据或一个唯一的标识符存储到...
结合以上方法,"防止页面重复提交demo"旨在提供一个完整的解决方案,既考虑了前端用户体验,又加强了服务器端的安全性。通过这种方式,即使用户刷新页面,只要token已经被使用过,服务器就能有效地阻止重复的数据...
2. **服务器端验证**:在VB.NET中,我们可以在`Page_Load`事件中检查一个临时状态,比如Session或Viewstate,来判断请求是否为重复。如果发现是重复提交,则忽略此次请求。例如: ```vb.net Protected Sub Page_...
在Web应用程序开发过程中,表单重复提交是一个常见的问题。用户可能因为网络延迟、浏览器缓存等原因导致重复点击提交按钮,进而向服务器发送多个相同的请求。这对于数据完整性来说是一种威胁。Struts框架提供了一种...
通过以上三个步骤,我们成功地实现了在Struts中通过Token来防止表单重复提交的功能。这种方法不仅提高了应用的安全性,还提升了用户体验。在实际项目开发过程中,还需要根据具体需求进一步完善和优化这一机制。
使用JavaScript来防止表单重复提交的优点是简单易行,不需要额外的服务器权限支持,并且可以快速响应用户的操作,减少服务器端的压力。但是,如果页面被刷新,检查机制将失效,因为标志变量会被重置。因此,理想的...
服务器端解决方法是通过在 Session 中生成一个唯一的标志 ID 来防止表单重复提交,而客户端解决方法是使用 JavaScript 代码来防止表单重复提交、防刷新、防后退。然而,客户端解决方法会遇到不同浏览器的兼容性问题...
在开发基于ThinkPHP框架的Web应用时,防止用户通过浏览器操作导致表单重复提交是一个常见问题。用户可能会点击浏览器的后退按钮或刷新页面来重复提交数据,这可能会对数据库造成重复记录或不一致的数据状态。本文将...
在Web开发中,表单重复提交是一个常见的问题,它可能导致数据不一致,服务器资源浪费,甚至影响用户体验。JSP(JavaServer Pages)作为Java的一种动态网页技术,提供了多种方法来处理这种问题。以下是对JSP中针对...
其基本原理是在客户端与服务器之间传递一个随机生成的唯一标识符(即令牌),通过对比客户端提交时携带的令牌与服务器端存储的令牌是否一致来判断请求是否有效。如果令牌匹配,则认为是合法请求;反之,则拒绝该请求...
在网络与通信领域,优化网站表单验证和提交代码不仅涉及客户端浏览器的交互,也涉及与服务器端的数据通信。服务器端需要处理来自客户端的表单数据,进行进一步的验证、存储或其他业务逻辑处理。优化后的表单验证和...
在用户名字段的验证函数中,我们发送ajax请求到服务器端接口,以判断用户名是否已被注册。 ```javascript form.verify({ username:function(value){ var datas = {username: value}; var message = ''; $.ajax...
PHP作为常用的服务器端脚本语言,提供了多种防止表单重复提交的方法。本文将详细探讨通过记录IP地址来防止表单重复提交的策略,并与其他方法进行对比。 首先,通过记录IP地址来防止表单重复提交的基本思路是:当...