Tomcat ist nicht bündig, die Antwort Puffer

getestet habe ich HttpResponse#flushBuffer und PrintWriter#flush auf Tomcat 7 unten, aber es schien, dass die Reaktion eher ignoriert als geleert, der Inhalt über den Draht so schnell wie möglich als erwartet.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

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

        PrintWriter pw = response.getWriter();
        pw.println("say hi now");
        pw.flush();
        response.flushBuffer();
        try {
            Thread.sleep(5000);
        } catch (Exception e) {
        }
        pw.println("say bye in 5 seconds");

    }

}

Den brower angezeigt "hi" und "bye" zusammen, nach der Verzögerung. Ist es ein Fehlverhalten oder Absicht?

@EDIT

Laut @Tomasz Nurkiewicz's Vorschlag, getestet habe ich wieder mit curl dann das Problem Weg war. Es scheint, dass die standard-Browser und tcp/ip monitor pack small pieces of contents aus der gleichen http-Antwort gerendert Ihnen zusammen.

@EDIT 2

Es ist auch festzustellen, dass beide HttpResponse#flushBuffer und PrintWriter#flush Fahrt Tomcat 7 zu senden, die client -chunkdaten.

  • Ich glaube, es ist ein app-server-Konfiguration. Bitte, sehen Sie unter mein Beitrag.
InformationsquelleAutor sof | 2012-03-29
Schreibe einen Kommentar