我正在開發一個Web應用程序使用jsp
和servlet
。在我的應用程序有一個註銷部分,在我使用下面的代碼:會議未註銷清除
public class logout extends HttpServlet {
public void service(HttpServletRequest rq, HttpServletResponse rs) throws IOException, ServletException {
try {
HttpSession ss = rq.getSession(false);
if (ss.getAttribute("uid") == 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.invalidate();
rs.sendRedirect("/");
} catch (Exception exp) {
// rs.sendRedirect("/");
RequestDispatcher dd = rq.getRequestDispatcher("/");
dd.forward(rq, rs);
}
}
}
在瀏覽器中,如果我們連續使用,每週想不清除歷史,那麼如果我們登錄並點擊註銷,它將註銷重定向到主頁,但會話仍然存在。 會話在註銷時未被清除。
發生了什麼問題?我的代碼中是否還需要其他更改?
我覺得在這一行有一些問題HttpSession ss = rq.getSession(false);正如上面提到的代碼! – Santhucool
你有沒有例外? – Niranjan
NOPE !!我沒有得到任何 – Santhucool