JSP / Servlet在后退按钮(浏览器)上保留旧会话值

时间:2017-10-05 15:35:54

标签: javascript java jsp servlets

所以问题是我有一个InitialPage.jsp页面,在加载时会做下一件事:

if (<%=(Boolean) session.getAttribute("error")%>) {
        showPopupWithError();
    }

Login.jsp提交一个调用ValidationServlet.java的表单,它管理InitialPage.jsp的验证,因此,在doPost(...)的开头我设置了session.setAttribute("error", false),并开始进行验证。

如果任何输入错误,servlet将执行session.setAttribute("error", true),并重定向到InitialPage.jsp,继续循环。随着scriptlet的加载,.jsp将获得以下代码:

if (true) {
        showPopupWithError();
    }

并显示消息。 所以我继续将数据加载到输入,当一切正常时,我再次提交表单。 servlet正确验证(因此,属性&#34;错误&#34;保持设置为false,就像我在doPost(...)开头所做的那样)。 问题出现了,当下一页显示(MainPage.jsp)时,用户应该能够按下浏览器的后退按钮并返回到InitialPage.jsp。

当它返回到InitialPage.jsp时,属性&#34;错误&#34;设置为true,忽略对servlet的最后一次调用(当它正确验证时,将其设置为false,并重定向到下一页),它会自动显示弹出的错误消息。

所以基本上我的想法是在按下浏览器的后退按钮后找到一种保存会话值的方法,而我无法做到这一点。

谢谢!

0 个答案:

没有答案