Package org.apache.coyote.http11.filters
Class GzipOutputFilter
java.lang.Object
org.apache.coyote.http11.filters.GzipOutputFilter
- All Implemented Interfaces:
HttpOutputBuffer
,OutputFilter
,OutputBuffer
Gzip output filter.
- Author:
- Remy Maucherat
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected HttpOutputBuffer
Next buffer in the pipeline.protected GZIPOutputStream
Compression output stream.protected final OutputStream
Fake internal output stream.protected static final Log
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
doWrite
(ByteBuffer chunk) Write the given data to the response.void
end()
Finish writing the current response.void
flush()
Flushes any unwritten data to the client.long
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 Details
-
log
-
buffer
Next buffer in the pipeline. -
compressionStream
Compression output stream. -
fakeOutputStream
Fake internal output stream.
-
-
Constructor Details
-
GzipOutputFilter
public GzipOutputFilter()
-
-
Method Details
-
doWrite
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:
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
Flushes any unwritten data to the client. Added to allow flushing to happen for the gzip'ed outputstream.- Specified by:
flush
in interfaceHttpOutputBuffer
- Throws:
IOException
- If an I/O error occurs while flushing
-
setResponse
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
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
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:
IOException
- If an I/O error occurs while writing to the client
-
recycle
public void recycle()Description copied from interface:OutputFilter
Make the filter ready to process the next request.- Specified by:
recycle
in interfaceOutputFilter
-