Jsp 使浏览器知道HttpServletResponse sendRedirect

Jsp 使浏览器知道HttpServletResponse sendRedirect,jsp,servlets,Jsp,Servlets,我正在尝试创建一个用户注册页面 我的servlet看起来像这样 package main.com.attempt.trial.servlet; import java.io.IOException; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpSer

我正在尝试创建一个用户注册页面

我的servlet看起来像这样

 package main.com.attempt.trial.servlet;
 import java.io.IOException;
 import java.util.logging.Logger;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;


 public class UserRegisterServlet extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response){
    Logger logger = Logger.getLogger("LOGGER");
    logger.info("doGet() called");
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
    Logger logger = Logger.getLogger("LOGGER");
    String name = (String) request.getParameter("firstname");
    boolean isSuccess = true;
    logger.info("doPost() called");
    logger.info(name);
    if (isSuccess){
        response.sendRedirect("/userHomePage.html");
    }else{
        response.sendRedirect("/register.html");
    }
}
}

我试图将用户重定向到另一个JSP页面或返回注册页面,具体取决于注册是否成功。我将JSP页面映射到web.xml中,如下所示

<servlet>
    <servlet-name>UserRegisterServlet</servlet-name>
    <servlet-class>main.com.attempt.trial.servlet.UserRegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>UserRegisterServlet</servlet-name>
    <url-pattern>/registerUser.serv</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>UserRegisterPage</servlet-name>
    <jsp-file>/WEB-INF/jsp/register.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>UserRegisterPage</servlet-name>
    <url-pattern>/register.html</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>UserHomePage</servlet-name>
    <jsp-file>/WEB-INF/jsp/userHomePage.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>UserHomePage</servlet-name>
    <url-pattern>/userHomePage.html</url-pattern>
</servlet-mapping>
因此,看起来服务器端的一切都正常工作,但浏览器根本不“知道”它需要转到另一个页面。此外,无论我是否尝试重定向到JSP页面、静态HTML页面,或者是否使用相对路径或绝对路径,都无关紧要


有什么帮助吗?提前感谢。

执行是如何通过Ajax到达servlet的?当您响应Ajax调用重定向时,实际页面不会重定向。但是,在ajax响应中发送的响应将是您重定向到的文件,所以在div或其他文件中打印响应,您将看到这一点?使用Spring的表单标记库是否有效?另一种方法是:如果您希望对servlet的调用导致浏览器中的重定向,不要使用Ajax调用servlet。是的,Ajax就是问题所在。只要使用forms and submit按钮重写JSP页面,一切都会按预期进行。感谢developerwk
 127.0.0.1 - - [28/Jul/2014:14:45:20 -0700] "GET /register.html HTTP/1.1" 200 1576 
 127.0.0.1 - - [28/Jul/2014:14:45:20 -0700] "GET /content/jquery-2.1.1.js HTTP/1.1" 304 - 
 127.0.0.1 - - [28/Jul/2014:14:45:22 -0700] "POST /registerUser.serv HTTP/1.1" 302 - 
 127.0.0.1 - - [28/Jul/2014:14:45:22 -0700] "GET /userHomePage.html HTTP/1.1" 200 433