在 HttpSession session = request.getSession(true); 和 HttpSession session = request.getSession(); 如果没有,会创建一个新会话。
我的问题是,如果会话已全部存在,我想使会话无效(),然后创建一个新会话。
我可能..我的意思是有任何出路来实现这个目标.. ??
答案 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中执行此操作。
那就是说,为什么你想要使会话无效,然后立即在同一个请求中获得一个新的会话?这听起来像某个问题的解决方法,可能有更好的解决方案。