Class GzipOutputFilter

java.lang.Object
org.apache.coyote.http11.filters.GzipOutputFilter
All Implemented Interfaces:
HttpOutputBuffer, OutputFilter, OutputBuffer

public class GzipOutputFilter extends Object implements OutputFilter
Gzip output filter.
Author:
Remy Maucherat
  • Field Details

    • log

      protected static final Log log
    • buffer

      protected HttpOutputBuffer buffer
      Next buffer in the pipeline.
    • compressionStream

      protected GZIPOutputStream compressionStream
      Compression output stream.
    • fakeOutputStream

      protected final OutputStream fakeOutputStream
      Fake internal output stream.
  • Constructor Details

    • GzipOutputFilter

      public GzipOutputFilter()
  • Method Details

    • doWrite

      public int doWrite(ByteBuffer chunk) throws IOException
      Description copied from interface: OutputBuffer
      Write the given data to the response. The caller owns the chunks.
      Specified by:
      doWrite in interface OutputBuffer
      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 interface OutputBuffer
      Returns:
      Bytes written for the current request
    • flush

      public void flush() throws IOException
      Added to allow flushing to happen for the gzip'ed outputstream
      Specified by:
      flush in interface HttpOutputBuffer
      Throws:
      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 interface OutputFilter
      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 interface OutputFilter
      Parameters:
      buffer - The next buffer instance
    • end

      public void end() throws IOException
      Description copied from interface: HttpOutputBuffer
      Finish writing the current response. It is acceptable to write extra bytes using OutputBuffer.doWrite(java.nio.ByteBuffer) during the execution of this method.
      Specified by:
      end in interface HttpOutputBuffer
      Throws:
      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 interface OutputFilter