amyroh 2002/07/16 10:15:18
Modified: webapps/examples/WEB-INF/classes/compressionFilters
CompressionFilter.java
CompressionResponseStream.java
Log:
Add include action to be extended with parameter gzip:
<jsp:include page="/pageToInclude.jsp" flush="true">
<jsp:param name="gzip" value="false"/>
</jsp:include>
The result was previously compressed twice in the calling page when you
include.
Patch submitted by "Dimitri Valdin" <[EMAIL PROTECTED]>.
Thanks, Dimitri. :-)
Revision Changes Path
1.7 +16 -5
jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
Index: CompressionFilter.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CompressionFilter.java 18 Jun 2002 19:53:25 -0000 1.6
+++ CompressionFilter.java 16 Jul 2002 17:15:18 -0000 1.7
@@ -129,7 +129,7 @@
if (str!=null) {
compressionThreshold = Integer.parseInt(str);
if (compressionThreshold != 0 && compressionThreshold <
minThreshold) {
- if (debug > 0) {
+ if (debug > 0) {
System.out.println("compressionThreshold should be either 0
- no compression or >= " + minThreshold);
System.out.println("compressionThreshold set to " +
minThreshold);
}
@@ -191,6 +191,17 @@
if (debug > 1) {
System.out.println("requestURI = " +
((HttpServletRequest)request).getRequestURI());
}
+
+ // Are we allowed to compress ?
+ String s = (String) ((HttpServletRequest)request).getParameter("gzip");
+ if ("false".equals(s)) {
+ if (debug > 0) {
+ System.out.println("got parameter gzip=false --> don't
compress, just chain filter");
+ }
+ chain.doFilter(request, response);
+ return;
+ }
+
Enumeration e =
((HttpServletRequest)request).getHeaders("Accept-Encoding");
while (e.hasMoreElements()) {
1.6 +21 -5
jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java
Index: CompressionResponseStream.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CompressionResponseStream.java 18 Jun 2002 19:53:25 -0000 1.5
+++ CompressionResponseStream.java 16 Jul 2002 17:15:18 -0000 1.6
@@ -189,8 +189,14 @@
if (gzipstream != null) {
flushToGZip();
gzipstream.close();
+ gzipstream = null;
} else {
if (bufferCount > 0) {
+ if (debug > 2) {
+ System.out.print("output.write(");
+ System.out.write(buffer, 0, bufferCount);
+ System.out.println(")");
+ }
output.write(buffer, 0, bufferCount);
bufferCount = 0;
}
@@ -291,7 +297,9 @@
System.out.println("write, bufferCount = " + bufferCount + " len = " +
len + " off = " + off);
}
if (debug > 2) {
+ System.out.print("write(");
System.out.write(b, off, len);
+ System.out.println(")");
}
if (closed)
@@ -324,9 +332,17 @@
public void writeToGZip(byte b[], int off, int len) throws IOException {
if (debug > 1) {
- System.out.println("***** writeToGZip, len = " + len);
+ System.out.println("writeToGZip, len = " + len);
+ }
+ if (debug > 2) {
+ System.out.print("writeToGZip(");
+ System.out.write(b, off, len);
+ System.out.println(")");
}
if (gzipstream == null) {
+ if (debug > 1) {
+ System.out.println("new GZIPOutputStream");
+ }
gzipstream = new GZIPOutputStream(output);
response.addHeader("Content-Encoding", "gzip");
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>