简单的重复提交和后退按钮处理
<%@ page language="java" pageEncoding="gbk"%>
<%@ page import ="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<script>
window.history.forward();
</script>
<body>
<%
Random random = new Random();
//生成随机flag,
Integer flag=new Integer(random.nextInt());
session.setAttribute("flag",flag);
%>
<form action="MyJsp.jsp" method="post" name="frm">
<input type="hidden" name="flag" value="<%=flag %>">
<input type="text" name="name"/>
<input type="submit" value="submit">
</form>
</body>
</html>
<%@ page language="java" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String name = request.getParameter("name");
Integer flag =new Integer(Integer.parseInt(request.getParameter("flag")));
System.out.println("dddddddd"+flag);
if (flag.equals(session.getAttribute("flag"))){
System.out.println("************************");
session.removeAttribute("flag");
} else {
System.out.println("重复提交");
}
%>
</body>
</html>
分享到:
相关推荐
处理重复提交、重复刷新和防止后退,需要结合客户端和服务器端的技术手段,确保用户交互过程中的数据一致性与系统稳定性。在设计和实现时,应充分考虑用户体验,避免过于繁琐的验证流程,同时兼顾系统的安全性和可用...
### 屏蔽浏览器的后退按钮 在网页开发过程中,有时会遇到用户需求或特定应用场景,需要阻止浏览器的后退按钮功能。...相反,应该采用更合理的方法来处理重复提交的问题,同时保持良好的用户体验和遵守相关的法律法规。
在Web开发中,用户在提交表单后可能会意外地点击浏览器的刷新或后退按钮,导致数据重复提交,这在数据库操作中可能引起严重问题,比如财务交易的重复扣款或者用户信息的重复录入。针对这个问题,我们可以采取多种...
总结起来,禁用浏览器后退按钮并不是一个简单的过程,而是一种权衡用户体验和技术需求的策略选择。开发者应当根据具体的应用场景选择合适的解决方案,同时保持对用户行为的敏感性和尊重,避免过于干扰用户的导航习惯...
重复提交的分类: 1.由于网速原因而重复点击提交按钮 2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例...
### 防止页面的重复提交和刷新 #### 一、引言 在现代Web应用开发过程中,确保数据完整性与用户体验至关重要。其中,“防止页面的重复提交和刷新”这一问题尤为关键,它不仅关系到系统的稳定性,还直接影响用户体验...
**场景说明**:重复提交和刷新通常发生在用户操作过程中,特别是在提交表单后,如果用户不知道操作是否成功完成,可能会尝试刷新页面或重复点击提交按钮,这就会导致数据被重复提交到服务器。 **是否需要处理**:...
在ASP.NET web应用程序中,"刷新重复提交"是一个常见的问题,它发生在用户点击浏览器的刷新按钮或者使用前进/后退导航时。这可能导致数据的不一致性和错误,因为服务器可能会收到相同请求的多次处理,而这些请求原本...
在ASP.NET开发中,防止用户通过浏览器的后退按钮重复提交表单是一个常见的问题,因为这可能导致数据的不一致性和数据库的错误。以下是一些防止这种情况的方法和相关的知识点: 1. **利用HTTP响应头控制缓存** - `...
第三种情况,用户在提交表单后点击浏览器的后退按钮,回到表单页面并再次提交,可能会导致重复提交。对于这种场景,JavaScript的解决方案无效,因为后退操作会忽略JavaScript状态。此时,可以使用令牌(token)机制...
重复提交问题的产生原因有很多,例如点击提交按钮两次、点击刷新按钮、使用浏览器后退按钮重复之前的操作、使用浏览器历史记录重复提交表单、浏览器重复的HTTP请求、nginx重发等情况。 3. 解决方案 ### 1. 前端JS...
在Java Web开发中,Spring框架提供了`@SessionAttributes`和`@ModelAttribute`注解,可以结合自定义拦截器实现防重复提交。 1. **@SessionAttributes**:这个注解用于将模型属性存储在Session中。当我们处理表单...
使用浏览器后退按钮重复之前的操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复的HTTP请求。 几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种...
- 如果使用了前端路由(如AngularJS或React),可以监听表单提交事件并在提交后更新路由,避免用户通过浏览器的前进/后退按钮触发重复提交。 8. **异步提交与Ajax**: - 使用Ajax进行异步提交,可以更精确地控制...
或者用户单击“后退”按钮后,再次提交表单,那么也将导致表单的重复提交。 二、 服务器端避免表单的重复提交 2.1 利用同步令牌来解决重复提交的基本原理 基本原理如下: (1) 用户访问提交数据的页面,服务器端...
c>使用浏览器后退按钮重复之前的操作,导致重复提交表单。 d>使用浏览器历史记录重复提交表单。 e>浏览器重复的HTTP请求。 二、防止表单重复提交的方法 a>禁掉提交按钮。表单提交后disabled现在的按钮或者取消该...
2. 使用 Token 机制,生成一个令牌保存在用户 Session 中,在 form 中加一个隐藏域,显示该令牌的值,form 提交后重新生成一个新的令牌,将用户提交的令牌和 Session 中的令牌比较,如相同则是重复提交。 3. 使用 ...