[英]Is it possible to redirect to the same JSP page from a Servlet?
名为Test.jsp
的JSP页面映射到以下Servlet。
@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"})
public final class TestServlet extends HttpServlet
{
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//request.getRequestDispatcher("/WEB-INF/admin_side/Test.jsp").forward(request, response);
response.sendRedirect("TestServlet");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
此Servlet映射到JSP页面Test.jsp
。 当在地址栏中输入类似http://localhost:8080/Assignment/TestServlet
的URL时,将调用doGet()
方法。
请求可以在注释时转发到给定的URL。 是否可以重定向到同一个JSP页面Test.jsp
?
如果尝试这样做,Google Chrome会抱怨,
此网页有重定向循环
但是,它可以重定向到WEB-INF/admin_side
下的其他页面。
POST-REDIRECT-GET模式就像这样工作。
客户端发送POST请求,您的服务器处理它并使用重定向进行响应,即。 具有302状态代码和Location
标头的响应到适当的URI。 客户端向该URI发出GET请求。
目前,您的服务器正在重定向GET和POSTS请求。 更糟糕的是,您的GET重定向到它正在处理的相同URI,创建您正在看到的重定向循环。
更改您的Servlet实现,以便POST发送重定向,但GET实际上通过HTML,AJAX等提供正常的200响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.