无法关闭我的会话 Servlet

Unable to Close my Session Servlets

我无法在注销方法中使用 session.invalidate() 关闭我的会话,请帮忙!

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    response.getWriter().println("<h3><a href='/assign2'>Logged out Successfully</a></h3>");
    HttpSession session = request.getSession(false);
    if(session!=null)
    session.invalidate();


}

用户名根本没有写入 null

这是我要重定向到的欢迎页面

HttpSession session=request.getSession(false);

    if(session!=null)
    {
        if((request.getSession().getServletContext().getAttribute("userid")) != null)
        {
            username = request.getSession().getServletContext().getAttribute("userid").toString();
        }

    }


    System.out.println(username);

注销页面没问题,但是在欢迎页面中你混淆了概念:

尽管 session.invalidate 的执行确实解除了所有绑定属性的绑定,但您是从 ServletContext 而不是 Session 中检索属性 userid。此外,请注意 request.getSession() 如有必要会创建一个新会话。

存储和检索属性的连贯方式是通过 HttpSession 对象:

HttpSession session=request.getSession(false);

if(session!=null)
{
    if((session.getAttribute("userid")) != null)
    {
        username = session.getAttribute("userid").toString();
    }
}
System.out.println(username);