Я разрабатываю веб-приложение, используя 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