zoukankan      html  css  js  c++  java
  • 今日总结

    2020年10月24日:

    关于表单重复提交
    造成表单重复提交的原因有以下几点:

    第一种情况:提交完表单以后,不做其他操作,直接刷新页面,表单会提交多次。

     根本原因:Servlet处理完请求以后,直接转发到目标页面,这样整个业务只发送了一次请求,那么当你在浏览器中点击刷新会一直都会刷新之前的请求。

      解决方法:不用转发到另一页面,采用重定向的方式跳转到目标页面

    response.sendRedirect("/login_success.jsp");

    第二种情况:在提交表单时,如果网速较差,可能会导致点击提交按钮多次,这种情况也会导致表单重复提交。

     解决方法:点击提交按钮之后,使按钮不可用。通过js代码完成

    <script type="text/javascript">

        window.onload = function(){ 
            //获取按钮的对象
            var btn = document.getElementById("btn");
            //为按钮绑定单击响应函数
            btn.onclick = function(){     
                //点击以后使按钮不可用
                this.disabled=true;  
                //当将提交按钮设置为不可用时,会自动取消它的默认行为
                //手动提交表单
                this.parentNode.submit();  
            };
        };
    </script>
     
    <form action="${pageContext.request.contextPath }/SessionServlet" >
    user:<input type="text" name="username">
    password<input type="password" name="pwd">
    <input type="submit" value="提交" id="btn"
    </form>
     

    第三种情况:表单提交成功以后,直接点击浏览器上回退按钮,不刷新页面,然后点击提交按钮再次提交表单。

     - 根本原因:因为服务器在处理请求时,不会检查是否为重复提交的请求。

  • 相关阅读:
    opencast的docker安装
    编译openwrt_MT7688_hiwooya
    linux中mysql自动同步
    网站服务器迁移
    vtigercrm安装
    ixcache的蜜汁突发故障
    20180628
    pip3 install -r requirements.txt安装超时解决方法
    pytest文档29-allure-pytest
    pytest框架
  • 原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14117777.html
Copyright © 2011-2022 走看看