Java request.getSession出现问题

Java request.getSession出现问题,java,servlets,Java,Servlets,我有一个servlet LogMeOut.java,在这里我编写以下代码: HttpSession session = request.getSession(false); if (session != null){ //statements to delete my cookies // session.invalidate(); } 我的问题是,当我第一次从jsp调用LogMeOut时,它会给出一个没有会话的请求对象。因此,我的会话.invalidate不起作用。 但是如果我返

我有一个servlet LogMeOut.java,在这里我编写以下代码:

HttpSession session = request.getSession(false);
if (session != null){
   //statements to delete my cookies //
   session.invalidate();
}
我的问题是,当我第一次从jsp调用LogMeOut时,它会给出一个没有会话的请求对象。因此,我的
会话.invalidate
不起作用。 但是如果我返回到jsp,然后调用相同的LogMeOut,那么这次请求对象包含正确的会话,并且可以正常工作。
知道为什么吗?或者我应该从哪里开始查找?

如果在没有现有会话的请求上调用
getSession(false)
,则它将返回
null
。这是


如果调用
getSession(true)
或只调用
getSession()
,则如果不存在会话,则将创建会话

执行JSP通常也会自动创建一个会话,因此下次执行代码时,会出现一个会话


但是,如果您只想使现有会话无效,那么您的代码在我看来很好-不需要创建会话来立即使其无效。

如果您在没有现有会话的请求上调用
getSession(false)
,那么它将返回
null
。这是


如果调用
getSession(true)
或只调用
getSession()
,则如果不存在会话,则将创建会话

执行JSP通常也会自动创建一个会话,因此下次执行代码时,会出现一个会话


但是,如果您只想使现有会话无效,那么您的代码在我看来很好-不需要创建会话来立即使其无效。

是的,但我想在第一次调用servlet时使会话无效,但这似乎没有发生。它只在我第二次调用servlet时发生。如何确保在第一次调用中使用NOTNULL会话获得正确的请求?是的,但是我想在第一次调用servlet时使会话无效,但这似乎没有发生。它只在我第二次调用servlet时发生。如何确保在第一次调用中使用NOTNULL会话获得正确的请求?