Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java response.sendRedirect()未运行-Servlet_Java_Servlets_Response_Getattribute - Fatal编程技术网

Java response.sendRedirect()未运行-Servlet

Java response.sendRedirect()未运行-Servlet,java,servlets,response,getattribute,Java,Servlets,Response,Getattribute,当运行下面的代码时,我收到的输出是“in”,但response.sendRedirect()不运行。两个Javaservlet文件“Class1”和“Servlet1”位于同一文件夹中 public class Class1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletExce

当运行下面的代码时,我收到的输出是“in”,但response.sendRedirect()不运行。两个Javaservlet文件“Class1”和“Servlet1”位于同一文件夹中

public class Class1 extends HttpServlet {

   public void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws IOException, ServletException {

       response.setContentType("text/html; charset=ISO-8859-7");
       PrintWriter out = new PrintWriter(response.getWriter(), true);

       ArrayList list2 = (ArrayList)request.getAttribute("list_lo");

       if (list2 == null || list2.isEmpty() ) {
          out.println("in");
          response.sendRedirect("Servlet1");
          return;}
       }


}

尝试将文件名改为扩展名而不是类名,这种情况有时发生在我身上,这样做很有效,一旦开始返回任何输出,就无法发送重定向

在开始任何输出之前,您需要将处理任何可能重定向的逻辑放在一起(例如,在您的示例中,
out.println()
)。无论如何,将重定向逻辑放在方法的最开始是一件明智的事情,因为它应该是您决定的第一件事


输出启动后重定向的原因在于HTTP协议本身——重定向是使用响应头传输的,响应头与响应体之间用一个空行隔开。一旦您开始编写响应主体,就无法再传输更多的头文件(如果幸运的话,除了启动的输出仍在缓冲区中之外).

我认为您错过了为url映射配置web.xml文件。请将您的
web.xml
摘录发布到您配置的位置。一旦开始返回任何输出,您就无法发送重定向。我不确定仅仅通过response.getWriter()获取编写器是否有效,请尝试将重定向逻辑放在方法的最开头(无论如何,这是一件好事)。并删除
out.println(“in”)因为这意味着一定要打印输出,从而阻止您执行重定向。是的,我已经配置了web。xml@Jiri多谢各位。println就是问题所在。