• 阻止表单重复提交的办法以及支付成功后页面后退重复提交的解决方案


    首先,是解决表单重复提交得问题,解决方法是重定向。http://www.cnblogs.com/zeussbook/p/8919684.html

    然而顾客在购买商品成功之后,后退到订单提交 或者 订单支付的页面再次提交请求怎么办呢?

    1. 首先,订单提交跳转到订单支付成功页面,重定向,那么订单信息肯定是存在session中,model是不行的。

    2.在后台订单支付成功之后,要删除session中得订单信息。

    3.再次回退上一个页面,获取session中得订单信息,就会报一个空指针,我们只需要捕获这个空指针,在session中保存一个提示信息:

      catch (NullPointerException n){ 

        request.getSession().setAttribute("error","操作已执行,请务重复提交!");

      }

    4.在jsp页面中,添加一个隐藏值保存空指针返回得提示信息。

      <input type="hidden" id="error" value="${error}">

    5.在js中加载时获取这个隐藏值,不为空则弹出提示框,跳转到指定页面

      ini();

         function ini(){

        var error=$("#error").val();

            if(error!="" && error!=undefined){

            changeDLGContent(error);
    openYesOrNoDLG();
    $('#yes').click(function () {
    cancleBtn();
    window.location.href=path+"/static/index";
    });
    }
    }
    6.在jsp页面加载完成之后,要删除session中得这个值,避免下一次正常提交被阻止。用JSP小脚本删除。
    <%
    if(null!=session.getAttribute("error")){
    session.removeAttribute("error");
    }
    %>
    效果如下:

    
    



  • 相关阅读:
    镜像的上传和下载
    ps 命令
    过滤不合格数据
    云计算5-3-2法则
    Python Django初入门
    python web框架
    BootStrap、EasyUI、JQueryUI
    JS正则
    ngonx FastCGI 相关参数调优
    Windows10远程连接错误-出现身份验证错误
  • 原文地址:https://www.cnblogs.com/zeussbook/p/8968032.html
Copyright © 2020-2023  润新知