会话问题

时间:2009-11-24 10:58:17

标签: java servlets

在 HttpSession session = request.getSession(true); 和 HttpSession session = request.getSession(); 如果没有,会创建一个新会话。

我的问题是,如果会话已全部存在,我想使会话无效(),然后创建一个新会话。

我可能..我的意思是有任何出路来实现这个目标.. ??

3 个答案:

答案 0 :(得分:6)

这个怎么样?

HttpSession session = request.getSession(false); // Will not create a new session.
if(session!=null)
{
   session.invalidate();
}
session = request.getSession(true);

答案 1 :(得分:4)

首先杀死旧会话

session.invalidate();

然后用

重新打开它
HttpSession session = request.getSession(true);

不工作?

答案 2 :(得分:2)

首先执行session.invalidate();,然后根据需要对response.sendRedirect("url");执行url,您只需执行request.getSession();即可获得新会话。

请注意,这种方法不能保证在JSP文件中有效,只是因为响应在大多数情况下已经提交(因此容器无法设置{{1}的新值}响应头中的cookie)。你真的需要在Servlet或Filter中执行此操作。

那就是说,为什么你想要使会话无效,然后立即在同一个请求中获得一个新的会话?这听起来像某个问题的解决方法,可能有更好的解决方案。