Package org.apache.coyote.http11.filters
Class GzipOutputFilter
- java.lang.Object
-
- org.apache.coyote.http11.filters.GzipOutputFilter
-
- All Implemented Interfaces:
HttpOutputBuffer
,OutputFilter
,OutputBuffer
public class GzipOutputFilter extends java.lang.Object implements OutputFilter
Gzip output filter.- Author:
- Remy Maucherat
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
GzipOutputFilter.FakeOutputStream
-
Field Summary
Fields Modifier and Type Field Description protected HttpOutputBuffer
buffer
Next buffer in the pipeline.protected java.util.zip.GZIPOutputStream
compressionStream
Compression output stream.protected java.io.OutputStream
fakeOutputStream
Fake internal output stream.protected static Log
log
-
Constructor Summary
Constructors Constructor Description GzipOutputFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
doWrite(java.nio.ByteBuffer chunk)
Write the given data to the response.int
doWrite(ByteChunk chunk)
Deprecated.Unused.void
end()
Finish writing the current response.void
flush()
Added to allow flushing to happen for the gzip'ed outputstreamlong
getBytesWritten()
Bytes written to the underlying socket.void
recycle()
Make the filter ready to process the next request.void
setBuffer(HttpOutputBuffer buffer)
Set the next buffer in the filter pipeline.void
setResponse(Response response)
Some filters need additional parameters from the response.
-
-
-
Field Detail
-
log
protected static final Log log
-
buffer
protected HttpOutputBuffer buffer
Next buffer in the pipeline.
-
compressionStream
protected java.util.zip.GZIPOutputStream compressionStream
Compression output stream.
-
fakeOutputStream
protected final java.io.OutputStream fakeOutputStream
Fake internal output stream.
-
-
Method Detail
-
doWrite
@Deprecated public int doWrite(ByteChunk chunk) throws java.io.IOException
Deprecated.Unused. Will be removed in Tomcat 9. UsedoWrite(ByteBuffer)
Description copied from interface:OutputBuffer
Write the given data to the response. The caller owns the chunks.- Specified by:
doWrite
in interfaceOutputBuffer
- Parameters:
chunk
- data to write- Returns:
- The number of bytes written which may be less than available in the input chunk
- Throws:
java.io.IOException
- an underlying I/O error occurred
-
doWrite
public int doWrite(java.nio.ByteBuffer chunk) throws java.io.IOException
Description copied from interface:OutputBuffer
Write the given data to the response. The caller owns the chunks.- Specified by:
doWrite
in interfaceOutputBuffer
- Parameters:
chunk
- data to write- Returns:
- The number of bytes written which may be less than available in the input chunk
- Throws:
java.io.IOException
- an underlying I/O error occurred
-
getBytesWritten
public long getBytesWritten()
Description copied from interface:OutputBuffer
Bytes written to the underlying socket. This includes the effects of chunking, compression, etc.- Specified by:
getBytesWritten
in interfaceOutputBuffer
- Returns:
- Bytes written for the current request
-
flush
public void flush() throws java.io.IOException
Added to allow flushing to happen for the gzip'ed outputstream- Specified by:
flush
in interfaceHttpOutputBuffer
- Throws:
java.io.IOException
- If an I/O error occurs while flushing
-
setResponse
public void setResponse(Response response)
Description copied from interface:OutputFilter
Some filters need additional parameters from the response. All the necessary reading can occur in that method, as this method is called after the response header processing is complete.- Specified by:
setResponse
in interfaceOutputFilter
- Parameters:
response
- The response to associate with this OutputFilter
-
setBuffer
public void setBuffer(HttpOutputBuffer buffer)
Description copied from interface:OutputFilter
Set the next buffer in the filter pipeline.- Specified by:
setBuffer
in interfaceOutputFilter
- Parameters:
buffer
- The next buffer instance
-
end
public void end() throws java.io.IOException
Description copied from interface:HttpOutputBuffer
Finish writing the current response. It is acceptable to write extra bytes usingOutputBuffer.doWrite(java.nio.ByteBuffer)
during the execution of this method.- Specified by:
end
in interfaceHttpOutputBuffer
- Throws:
java.io.IOException
- If an I/O error occurs while writing to the client
-
recycle
public void recycle()
Make the filter ready to process the next request.- Specified by:
recycle
in interfaceOutputFilter
-
-