会话破坏后仍然获得会话ID

时间:2014-04-30 06:58:15

标签: java jsp session

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
HttpSession session=request.getSession(false);
session.invalidate();
out.println(session.getId());
// processRequest(request, response);
}

这是从jsp页面调用的servlet注销。我试图破坏会话但是在函数session.invalidate()之后,它仍然打印会话ID。我的会话是否已被销毁,或者在执行invalidate函数后需要一段时间才能销毁?

2 个答案:

答案 0 :(得分:1)

立刻摧毁。它不会将Id设置为null。它只是解绑绑定它的任何对象

答案 1 :(得分:1)

一旦调用invalidated方法

会话即.invalidate

来自docs,

invalidate

void invalidate()
Invalidates this session then unbinds any objects bound to it.

要检查它是否无效,请从会话中获取属性并检查其值。例如,

String value= (String)session.getAttribute("value");
out.print(value);

在这种情况下会打印null

注意:在检查上述情况之前,您已在value中设置session

希望这会有所帮助!!