Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java request.getSession(false)。注销后使不工作无效_Java_Jsp_Tomcat_Servlets - Fatal编程技术网

Java request.getSession(false)。注销后使不工作无效

Java request.getSession(false)。注销后使不工作无效,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我有一个带有tomcat、java、jsp和servlet的webproject。 如果我在webproject前端注销,我想销毁所有会话。但是下面的代码不起作用。我希望所有会话都被破坏,如果我注销,我必须在下一步中使用我的用户和密码进行身份验证。谢谢你的帮助 if(lstrAction!=null && lstrAction.equals(ApplicationConstants.LOGOUT)){ HttpSession session = requ

我有一个带有tomcat、java、jsp和servlet的webproject。 如果我在webproject前端注销,我想销毁所有会话。但是下面的代码不起作用。我希望所有会话都被破坏,如果我注销,我必须在下一步中使用我的用户和密码进行身份验证。谢谢你的帮助

if(lstrAction!=null && lstrAction.equals(ApplicationConstants.LOGOUT)){

            HttpSession session = request.getSession(false);
            if(session != null){
                session.invalidate();
                session = request.getSession(false);
            }

        }

我已经调试了我的项目,发现在最后一行之后会话不为空。

试试这段代码。这肯定对你有用

Cookie c[]=request.getCookies();if(c==null){response.sendRedirect(“index.jsp”);}else{session.removeAttribute(c[0].getValue());response.sendRedirect(“index.jsp”);}


在此,在会话失效后,您将重新分配会话。在这一点上,它不会为空。您需要执行空检查以查找会话是否为空。

会话是否仍然包含存储在其中的所有变量?请检查此链接:
session.getId()
?最重要的是,在下一个请求中没有会话。正如@w4rumy所说,会话中是否也有paramaeters值,因为当您通过lat行提示会话对象时,它可能会创建一个空会话。为什么要调用
会话。get(false)
两次?删除第二个调用并将
会话
变量设置为
null
session.invalidate();
session = request.getSession(false);