Jsp 使浏览器知道HttpServletResponse sendRedirect
我正在尝试创建一个用户注册页面 我的servlet看起来像这样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
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