Java 即使我创建了一个新会话,isNew也返回false。为什么?

Java 即使我创建了一个新会话,isNew也返回false。为什么?,java,session,jakarta-ee,httpsession,Java,Session,Jakarta Ee,Httpsession,在下面的代码段中,uSession.isNew始终返回false。为什么呢?我创建了一个新会话,但相应的方法返回false HttpSession uSession = request.getSession(); if(uSession.isNew()) {System.out.println("Inside if statement---------"); uSession.setAttribute("username", username); uSes

在下面的代码段中,
uSession.isNew
始终返回false。为什么呢?我创建了一个新会话,但相应的方法返回
false

HttpSession uSession = request.getSession();
    if(uSession.isNew()) {System.out.println("Inside if statement---------");
        uSession.setAttribute("username", username);
        uSession.setMaxInactiveInterval(3600);
        RequestDispatcher dispatcher = request.getRequestDispatcher("User.jsp");
        dispatcher.forward(request, response);
    }

我甚至在从浏览器中删除所有本地主机cookie后尝试过。Jsp会自动创建会话。我不知道为什么会这样。但确实如此。因此jsp会自动创建一个会话,这就是为什么
isNew()
总是返回false。 解决方案是在JSP页面指令中将会话设置为false。即。,
使用
尝试使用
HttpSession#invalidate
。因为HttpSession在请求之前存在。调用的getSession()so isNew返回false。需要检查在httpSession uSession=request.getSession()之前创建的httpSession的位置/时间;此外,您没有在此代码中创建新会话。如果新会话不存在,getSession(false)将不会返回新会话。并检查会话是否为空或空not@LuiggiMendoza新会议?你的意思是传递一个布尔值?