繁体   English   中英

是否可以从Servlet重定向到同一个JSP页面?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM