按下后退按钮后防止表单重新提交

Luc*_*ier 5 java browser servlets back-button form-submit

我在这里有点微妙的情况.在我的组织中,我们设计库存管理系统,它是一个基于JSP页面和servlet的Web应用程序,用于处理它们.

我被要求解决一个具体问题.我们有一个带有HTML表单的JSP页面,其中有库存详细信息.当用户手动输入详细信息并提交表单时,库存详细信息在数据库中更新,并且工作正常.

问题是这样的:当用户按下浏览器的后退按钮时,用户可以转到他提交详细信息的上一页.当用户提交此数据时,数据会再次保存到数据库中.我需要防止这种行为.(清楚并重新加载页面的东西.)

到目前为止我做的事情:清除浏览器缓存.Code工作正常但不是预期的结果.

遗憾的是,由于公司规定,我无法分享代码.我需要的是帮助防止这种行为或解决方法.

提前致谢..

Sup*_*ghe 5

您可以在隐藏属性的帮助下使用javascript函数来重新加载网页。当用户按下后退按钮时,基于隐藏属性的值,将重新加载页面,而不加载缓存的页面。

您清除缓存的方法是正确的。加上这一点,您可以使用这种方法。

<input type="hidden" id="refreshed" value="no">
    <script type="text/javascript">

           onload=function(){
               var e=document.getElementById("refreshed");
               if(e.value=="no")e.value="yes";
               else{e.value="no";location.reload();}
           }

    </script>
Run Code Online (Sandbox Code Playgroud)

这种方法的一个缺点是,如果您的客户的浏览器禁用了JS,它将无法正常运行,否则它将正常运行。