tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cox, Charlie" <c...@cincom.com>
Subject RE: [Tomcat 4.1] Caching JSP Output via Filter PLZ HELP!!
Date Mon, 27 Jan 2003 13:47:46 GMT
see the thread titled:
RE: Tomcat 4.1.18/19 - How to activate gzip support?
http://www.mail-archive.com/tomcat-user@jakarta.apache.org/msg82477.html

and read the associated links about a similar problem (filter works for
static content, not for dynamic).

Charlie


> -----Original Message-----
> From: Jacob Hookom [mailto:hookomjj@uwec.edu]
> Sent: Saturday, January 25, 2003 12:21 PM
> To: 'Tomcat Users List'
> Subject: RE: [Tomcat 4.1] Caching JSP Output via Filter PLZ HELP!!
> 
> 
> I did something very similar to what you have here, but I did a
> DualServletOutputStream where if the printwriter was 
> requested from the
> HttpServletResponseWrapper, I would return a new PrintWriter 
> that wrapped my
> DualServletOutputStream.  The dual output stream contains the
> super.getOutputStream() (the actual response output) and the
> BufferedOutputStream that is used to getByteArray() and cache it.
> 
> It's very strange though because again, HTML files are 
> successfully cached
> and I can even look at the serialized content on the file 
> system, but 0
> bytes are written from JSP requests, even though I can see in my Log4j
> output that indeed the getWriter() method was called on my
> HttpServletResponseWrapper.
> 
> Best Regards,
> Jacob Hookom
> 
> -----Original Message-----
> From: li pan [mailto:purpureleaf@hotmail.com] 
> Sent: Friday, January 24, 2003 11:01 PM
> To: tomcat-user@jakarta.apache.org
> Subject: RE: [Tomcat 4.1] Caching JSP Output via Filter PLZ HELP!!
> 
> 
> Hello Jacob
>   I have successfully implemented this idea. I guess you mean 
> that get the 
> writer of JSP, and replace the writer with another one which 
> will cache the 
> jsp results as well as output them to the original writer? 
> Yes, it works.
>   I didn't use a filter, I simply hacked tomcat, so that my 
> cache facility 
> can be used by any web applications without modifying source 
> codes of them.
>   But I didn't get trouble by getWriter(), I guess maybe :
> 1 before you get the writer from the filter, tomcat has already done 
> something to the writer? I get it right after the JSP 
> instance is built.
> 2 tomcat does not allow you to change the writer of a 
> response while it is 
> in the filter chain? I also replace the response with my own 
> wrapper, so I 
> don't change it.
> 
> Here is my buffered writer:
> 
> package servercache;
> import java.io.PrintWriter;
> import java.nio.CharBuffer;
> public class BufferedPrintWriter
>     extends PrintWriter {
> 
>     private PrintWriter writer;
>     private CharBuffer buffer = CharBuffer.allocate(1024);
> 
>     public BufferedPrintWriter(PrintWriter writer) {
>         super(writer); //doesnot make any sense.
>         this.writer = writer;
>     }
> 
>     public void write(char[] buf, int offset, int count) {
>         writer.write(buf, offset, count);
>         buffer.put(buf, offset, count);
>     }
> 
>     public void write(String str) {
>         writer.write(str);
>         buffer.put(str);
>     }
> 
>     public void print(String str) {
>         writer.print(str);
> 
>         if (str == null) {
>             buffer.put("null");
>         } else {
>             buffer.put(str);
>         }
>     }
> 
>     public void println(String str) {
>         writer.println(str);
>         buffer.put(str);
>         buffer.put("\n");
>     }
> 
>     public CharBuffer getBuffer() {
> 
>         return buffer;
>     }
> }
> 
> and here is how it is created:
> 
> writer = new BufferedPrintWriter(response.getWriter());
> 
> 
> 
> _________________________________________________________________
> 与联机的朋友进行交流,请使用 MSN Messenger:  http://messenger.msn.com/cn
 
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:tomcat-user-help@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: 
> <mailto:tomcat-user-help@jakarta.apache.org>
> 

--
To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>


Mime
View raw message