【发布时间】:2016-01-20 07:12:25
【问题描述】:
我在jsp 和servlet 有一个网页
我正在登录页面,它被重定向到homepage.jsp
在登录时,我在我的 servlet login.java 中设置会话变量如下:
HttpSession ss = rq.getSession(true);
ss.setAttribute("uid", rstusrdetail.getInt(1));
ss.setAttribute("username", rstusrdetail.getString(2));
我也有一个注销按钮,我的 logout.java 如下:
try {
HttpSession ss = rq.getSession(false);
if (ss.getAttribute("uid") == null || ss.getAttribute("username") == null ) {
rs.sendRedirect("/");
}
rs.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
rs.addHeader("Cache-Control", "post-check=0, pre-check=0");
rs.setHeader("Pragma", "no-cache");
rs.setDateHeader("Expires", 0);
HttpSession session = rq.getSession(false);
session.setAttribute("uid", null);
session.setAttribute("username", null);
session.invalidate();
rs.sendRedirect("/");
} catch (Exception exp) {
RequestDispatcher dd = rq.getRequestDispatcher("/");
dd.forward(rq, rs);
}
注销后,当我单击返回按钮时,它会重定向到 homepage.jsp
如果我刷新,那么我会收到会话过期消息。如果我直接访问该页面,我也会收到会话过期消息。
如何在不刷新的情况下单击返回按钮以使会话过期,或者有什么方法可以禁用浏览器中的返回按钮?
【问题讨论】:
-
检查this article。很好解释。
-
@UUIIUI 我也在用同样的方法。你可以检查我上面的代码。我的问题是为什么我在返回按钮上获得页面?
-
@Santhucool 上面的代码并未表明您也遵循了该文章关于禁用所有敏感页面缓存的建议(不仅在注销时)。
-
好吧,让我试试吧!
-
谢谢哥们,我已经添加了一些行,它解决了我的问题!