Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Re: Having problems with stored PrintWriter.

Ben Souther

2003-12-16

Replies:

HTTP is a stateless environment.
You have no way of hanging on to the browser connection from the server.

Usually, if a user has to wait more than a few seconds for a response from
the server you would forward them to a page that refreshes itself every n
seconds via a META-REFRESH tag. Each time it refreshes, it checks the status
on the server.




On Tuesday 16 December 2003 10:32 am, derrick.robertson@(protected):
> Im trying to create a servlet that is able to push back to the browser
> rather than just operate a a pull mechanism.

> To create this, there is a piece of javascript embedded within the html
> outputted to the browser, so when additional javascript code is written in
> at a later stage calling that function, that user can be notified of events
> he is registered to.

> Perhaps not the way servlets were made to work but anyway!
> Unless you are able to come up with a better solution?
>
> How do i stop the response from ending then? I have left the html open at
> the end so no /html code and I have not closed the output to the browser.

>  -----Original Message-----
>  From: Ben Souther [mailto:bsouther@(protected)]
>  Sent: Tue 16/12/2003 15:32
>  To: Tomcat Users List
>  Cc:
>  Subject: Re: Having problems with stored PrintWriter.
>  
>  
>
>
>  > I am trying to store users PrintWriter and use them again at a later
>  > date
>
>  Just out of curiosity, why?
>  
>  
>  
>  
>  On Tuesday 16 December 2003 10:12 am, derrick.robertson@(protected):
>
>  > Im having a problem with PrintWriter in a servlet.
>  >
>  > I am trying to store users PrintWriter and use them again at a later
>  > date
to output javascript commands to the browsers at a later date. it
>  > store as a coyotewriter - org.apache.coyote.tomcat5.CoyoteWriter@(protected)
>  > To do this they are dumped in a hashtable. But they dont seem to work
>  > when
i try to write output with them? Is there any way around this??
>  > this is the error I get but only when i include the flush() line.
>  >
>  > If anybody can help it would be most appreciated
>  >
>  > To write out to users browser - retrieves from hashtable
>  > --------------------------------------------
>  > System.out.println("Is this even working: Receivedevent!!!!!!!
>  > "+useroutputstream); PrintWriter usersout =
>  > (PrintWriter)useroutputstream.get("derrick"); usersout.println("Testing
>  > received event status"+receivedevent);
>  > usersout.print("<script type=\"text/javascript\">");
>  > usersout.print("receivedEvent('your dinner is ready');");
>  > usersout.print("</script>");
>  > //extraline
>  > usersout.flush(); -----> Exception:
>  > lbp.LBPServlet.doGet(LBPServlet.java:98)
>  >
>  > I dont know if this is also part of the problem but if i use the
>  > .flush(),
it seems to start throwing exceptions.
>  >
>  > java.lang.NullPointerException
>  > org.apache.coyote.http11.InternalOutputBuffer.commit(InternalOutputBuffe
>  >r.j
ava:547)
>  > org.apache.coyote.http11.Http11Processor.action (Http11Processor.java:735
>  >)
org.apache.coyote.Response.action (Response.java:223)
>  > org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuff
>  >er.
java:518) org.apache.coyote.Response.doWrite (Response.java:532)
>  > org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes (OutputBuffer.java:
>  >392 )
>  > org.apache.tomcat.util.buf.ByteChunk.flushBuffer (ByteChunk.java:439)
>  > org.apache.coyote.tomcat5.OutputBuffer.flush (OutputBuffer.java:350)
>  > org.apache.coyote.tomcat5.CoyoteWriter.flush (CoyoteWriter.java:119)
>  > lbp.LBPServlet.doGet(LBPServlet.java:98)
>  > javax.servlet.http.HttpServlet.service (HttpServlet.java:743)
>  > javax.servlet.http.HttpServlet.service (HttpServlet.java:856)
>  > org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.
>  >jav
a:466)
>  > org.apache.catalina.servlets.InvokerServlet.doGet (InvokerServlet.java:18
>  >0)
javax.servlet.http.HttpServlet.service (HttpServlet.java:743)
>  > javax.servlet.http.HttpServlet.service (HttpServlet.java:856)
>  > filters.ExampleFilter.doFilter(ExampleFilter.java:149)
>  > filters.ExampleFilter.doFilter(ExampleFilter.java:149)
>
>  
>  --
>  Ben Souther
>  F.W. Davison & Company, Inc.
>  
>  
>  
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>  For additional commands, e-mail: tomcat-user-help@(protected)
>  
>  
>

--
Ben Souther
F.W. Davison & Company, Inc.



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.