Java servlet。如何在登录后访问上一个url

Java servlet。如何在登录后访问上一个url,java,servlets,request,forward,Java,Servlets,Request,Forward,我有一个简单的应用程序,在主页上我创建了表单进行登录 <form action="login" method="post"> <input type="hidden" name="ReturnUrl" value='${requestScope["javax.servlet.forward.request_uri"]}' /> <input type="text" name="login" /> <inpu

我有一个简单的应用程序,在主页上我创建了表单进行登录

<form action="login" method="post">
        <input type="hidden" name="ReturnUrl" value='${requestScope["javax.servlet.forward.request_uri"]}' />
        <input type="text" name="login" />
        <input type="password" name="password" />
        <input type="checkbox" name="RememberMe" checked/>
        <input type="submit" value="Make login" />
 <form/>
我希望这段代码将调用我的主servlet来显示相应的jsp

@WebServlet("/home")
public class Home extends HttpServlet
{
    private static final long serialVersionUID = 1L;
    private final String page = "/WEB-INF/jsp/homePage.jsp";

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        dispatcher.forward(request, response);
    } 

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }

}
显示主页,但url仍然包含“/登录”。我希望它应该是“/home”,因为我将请求从一个servlet转发到另一个servlet。 为什么url没有改变? 转发是否更改url?

您需要用户重定向到
returnURL
不转发

@WebServlet("/home")
public class Home extends HttpServlet
{
    private static final long serialVersionUID = 1L;
    private final String page = "/WEB-INF/jsp/homePage.jsp";

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        dispatcher.forward(request, response);
    } 

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }

}
response.sendRedirect(returnURL);