I originally posted this to the tomcat-user list, but, I received no
response. As far as I can tell, it's a bug, so, I'm now forwarding this to
the developer list in hopes that someone here might be able to confirm
whether this is a bug or not.
If you know the answer and respond, please respond to me directly or post to
the user list as I am not on this list.
Thanks a lot. I think you guys are doing a great job. It's just a few small
issues like this that I hope to resolve at this point.
Jon
----- Original Message -----
From: "Jonathan Eric Miller" <[EMAIL PROTECTED]>
To: "Tomcat User List" <[EMAIL PROTECTED]>
Sent: Thursday, August 16, 2001 2:14 PM
Subject: Bug in ServletResponse.flushBuffer() in Tomcat 4.0b7?
> I'm having problems using ServletResponse.flushBuffer() and Tomcat 4.0b7.
> The following servlet demonstrates.
>
> What I want it to do is print out the title and the "Test 1" line. Then,
> pause for 10 seconds and print out the "Test 2" line. It doesn't work the
> first time through. However, if I then hit Refresh in my browser after
going
> through it once, you can see clearly that it prints out the first line
> pauses and prints out the last line as I would expect it to. Is this a
bug?
> Can someone else reproduce this?
>
> The reason I want to get this to work is that I have a servlet where I
have
> a page with a Submit button on it, then on the next page, there is
sometimes
> a few second lag while performing an update on a directory/database. I've
> had problems in the past where users click the Submit multiple times
because
> they think it's stuck. Actually, it's not, it's just slow. So, what I want
> to do is print out at least the top part of the page so that the Submit
> button/previous page is no longer available for them to click on. If
someone
> could fix this for the final version of Tomcat 4, I would greatly
appreciate
> it. Either that or, if anyone else knows of a work around, that would be
> appreciated too.
>
> Thanks, Jon
>
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class SimpleServlet extends HttpServlet
> {
> public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws
> IOException
> {
> try
> {
> resp.setContentType("text/html");
>
> PrintWriter pw = resp.getWriter();
>
> pw.println("<html><head><title>SimpleServlet</title></head><body>");
>
> pw.println("<p>Test 1</p>");
>
> pw.flush();
>
> resp.flushBuffer();
>
> Thread.sleep(10000);
>
> pw.println("<p>Test 2</p>");
>
> pw.println("</body></html>");
>
> pw.close();
> }
> catch(Exception e)
> {
> System.out.println(e);
> }
> }
> }
>
>