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);