为什么sendRedirect(字符串路径)没有引发IllegalStateException?

为什么sendRedirect(字符串路径)没有引发IllegalStateException?,redirect,tomcat7,java-ee-6,servlet-3.0,Redirect,Tomcat7,Java Ee 6,Servlet 3.0,我的servlet中有以下代码 public class RedirectingExceptionServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter();

我的servlet中有以下代码

  public class RedirectingExceptionServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("Hello, response is being committed");
        out.flush();
        response.sendRedirect("redirectedExceptionServlet");
        System.out.println("Tried redirecting after committing response");
    }

}
在这里,我试图在响应提交后重定向

根据规范,如果在提交响应后尝试调用sendRedirect(path),sendRedirect(String)应该抛出IllegalStateException

相反,我看到一个页面,上面有一条消息:您好,正在提交响应

另一件有趣的事情是,我无法在服务器控制台中看到“提交响应后尝试重定向”语句

有人能给我解释一下这种行为吗


环境详细信息:一旦容器遇到out.flush(),Windows 7、Tomcat 7.0.47、J2EE-6

;它从那里返回,不执行剩余的代码行,也不忽略它们,只有在out.flush()之前没有重定向的情况下才是如此


我试过很多组合。如果有人有兴趣看一下这些组合,我可以分享它们

我通过试验几件事学到的是,一旦容器遇到问题。flush();它从那里返回,不执行剩余的代码行,也不忽略它们。如果我的理解有误,请纠正。