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

Java 是否可以从Servlet重定向到同一个JSP页面?,java,jsp,servlets,Java,Jsp,Servlets,名为Test.JSP的JSP页面映射到以下Servlet @WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"}) public final class TestServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Ser

名为
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。是否可以重定向到同一个JSP页面,
Test.JSP

谷歌Chrome抱怨说,如果有人试图这么做

此网页有一个重定向循环


但是,它可以重定向到
WEB-INF/admin\u side

下的其他页面。POST-redirect-GET模式就是这样工作的

客户机发送POST请求,您的服务器处理该请求并用重定向进行响应,即使用302状态代码和
Location
头对相应的URI进行响应。客户端向该URI发出GET请求

当前,服务器正在重定向GET和POST请求。更糟糕的是,GET正在重定向到它正在处理的同一个URI,从而创建您正在看到的重定向循环


更改您的Servlet实现,以便POST发送重定向,但GET实际上使用HTML、AJAX等提供正常的200响应。

请向我们展示您在代码或配置中是如何做到这一点的,您所说的“Servlet映射到JSP”和“JSP映射到Servlet”是什么意思。前向不是重定向。重定向不是转发。目前,在您发布的代码中,您得到了一个重定向循环,因为servlet重定向到自身。我在
web.xml
中没有针对该servlet的任何配置。因此,除了将servlet映射到路径/TestServlet的WebServlet注释外,您没有JSP到servlet的任何映射,以及servlet到JSP的任何映射。那么现在,你的问题是什么,你想实现什么?转发到任何JSP都可以。你从Chrome获得的重定向循环是由于你没有转发任何东西。相反,servlet重定向到它自己。如果可以重定向到同一个servlet,我想重定向以避免重复的表单提交,即PRG设计模式。处理POST和GET的方式不同。现在,他们都在重定向<代码>获取->重定向->获取->重定向->…循环。