【转】防止页面重复提交

//sb保存的是JavaScript脚本代码,点击提交按钮时执行该脚本
        StringBuilder sb = new StringBuilder();
        //保证验证函数的执行 
        sb.Append("if (typeof(Page_ClientValidate) == ‘function‘) { if (Page_ClientValidate() == false) { return false; }};");
        //点击提交按钮后设置Button的disable属性防止用户再次点击,注意这里的this是JavaScript代码
        sb.Append("this.disabled  = true;");
        //用__doPostBack来提交,保证按钮的服务器端click事件执行 
        sb.Append(this.ClientScript.GetPostBackEventReference(this.btnSubmit, "")); 
        sb.Append(";");
        //SetUIStyle()是JavaScript函数,点击提交按钮后执行,如可以显示动画效果提示后台处理进度
        //注意SetUIStyle()定义在aspx页面中
        sb.Append("SetUIStyle();");
        //给提交按钮增加OnClick属性
        this.btnSubmit.Attributes.Add("onclick", sb.ToString());

时间: 2024-11-14 03:25:51

【转】防止页面重复提交的相关文章

JAVA–利用Filter和session防止页面重复提交

JAVA–利用Filter和session防止页面重复提交解决思路:1 用户访问表单页面,先经过过滤器,过滤器设置一个随机id作为token令牌, 并将该token放入表单隐藏域中.2 表单响应到浏览器,用户填充数据后提交请求;3 请求经过过滤器,过滤器获取表单中的令牌进行验证,如果和之前生成的令牌一致,则将请求放行,并且清空令牌;4 如果用户重复提交表单,请求经过过滤器,过滤器进行验证.因为第一次放行后令牌已经清空失效,令牌不一致,不放行.跳转到提醒界面. 需用知识:1 过滤器基础知识2 se

【ASP.NET】 【防止连续多次点击提交按钮 导致页面重复提交】

最近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手贱点多了几次,当提交完成后发现数据库语句执行异常. 两种验证方式: 第1种: aspx页面按钮: <asp:Button ID="btnSumbit" runat="server" Text="提交" onclick="btnSumbit_Click" /> Page_Load 事件: btnSumbit.A

【layui】一个简单的防止页面重复提交的方法

基本思路是:点击提交按钮后弹出遮罩层,防止多次点击导致的重复提交. 1 <div class="layui-form-item"> 2 <div class="layui-input-block t-c" > 3 <input id="file-submit" class="layui-btn" lay-submit lay-filter="demo1" value="

防止页面重复提交

当页面Get的时候: 生成一个Token(如GUID .MD5等字符串),存入页面一个隐藏域 ,且存入Session 当页面提交的时候 获取隐藏域的值,和服务器Session进行校验 校验成功 清除Session Over 接下来就是EF CodeFirst+MVC3的B2C电商设计

JavaWeb 之 重复提交表单和验证码相关的问题!

下面我们首先来说一下表单的重复提交问题,我们知道在真实的网络环境中可能受网速带宽的原因会造成页面中表单在提交的过程中出现网络的延迟等问题,从而造成多次提交的问题!下面我们就具体来分析一下造成表单提交的一些常见问题. 下面我们就来列举一下重复提交的情况: ① .当表单提交数据到一个 Servlet 中,然后 Servlet再通过请求转发到成功页面,但是此时的地址栏中的地址是到 Servlet映射中的地址,并没有跳转到成功页面相关的JSP页面中,此时刷新页面会造成再一次提交表单. ② .当在表单页面

表单防重复提交

防止表单重复提交 介绍了使用 redirect 技术防止表单提交,但是 redirect 解决不了后退到表单页面时重复提交表单,为了解决这个问题,加入了 token 的机制.如果每个 form 相关的处理方法中都写一遍 token 的生成和校验代码,在实际项目中是不太能接受的,接下来介绍了使用拦截器的方式生成和校验 token. 1. 常规防止表单重复提交流程: GET 访问表单页面 填写表单 POST 提交表单 Server 端处理表单数据,例如把数据写入数据库 重定向到另一个页面,防止用户刷

学习笔记(五)Session 的创建和销毁 生命周期 表单重复提交及实现验证码

1. Session 的创建和销毁 page 指定的 session 属性: 1). 默认情况下, 第一次访问一个 WEB 应用的一个 JSP 页面时, 该页面都必须有一个和这个请求相关联的 Session 对象. 因为 page 指定的 session 属性默认为 true 2). 若把 session 属性改为 false, JSP 页面不会要求一定有一个 Session 对象和当前的 JSP 页面相关联所以若第一次访问当前 WEB 应用的 JSP 页面时, 就不会创建一个 Session

struts1与struts2的防止表单重复提交

struts1的防止表单重复提交 一.方法:利用令牌来解决页面重复提交的问题 二.步骤 2.1  Action中需要添加以下代码 public ActionForward entry(ActionMapping mapping, ActionForm form, HttpServletRequestrequest, HttpServletResponse response) throws Exception { saveToken(request); return mapping.findFor

HttpSession解决表单的重复提交

1). 重复提交的情况: ①. 在表单提交到一个 Servlet, 而 Servlet 又通过请求转发的方式响应一个 JSP(HTML) 页面, 此时地址栏还保留着 Serlvet 的那个路径, 在响应页面点击 "刷新" ②. 在响应页面没有到达时重复点击 "提交按钮". ③. 点击 "返回", 再点击 "提交" 2). 不是重复提交的情况: 点击 "返回", "刷新" 原表单页面, 再