如何在同一会话中从一个 java servlet 转发到另一个

How to forward from one java servlet to another in same session

这么简单的问题,网上的答案很少,但我都试过了,none 似乎对我有用。

        ServletContext servletContext = getServletContext();
        RequestDispatcher rd = servletContext.getRequestDispatcher("Home");
        rd.forward(request, response);

这是我目前的尝试,结果是 java.lang.NullPointerException

我也试过使用 RequestDispatcher rd = request.getRequestDispatcher("Home"); 这会产生一个空白页

response.sendRedirect("Home");

有效但不保留相同的会话

我正在从我的 Login servlet 重定向到 Home servlet,两者都存储在同一个包中,都在 web.xml(即使不再需要)

我通过将用户名直接存储在会话而不是 bean 中来解决我的问题,并使用重定向而不是转发,由于某些原因 bean 在重定向后没有正确保留值。