GzipOutputFilter (Apache Tomcat 9.0.75 API Documentation)

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
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `doWrite​(java.nio.ByteBuffer chunk)` | Write the given data to the response.
    `void` | `end()` | Finish writing the current response.
    `void` | `flush()` | Added to allow flushing to happen for the gzip'ed outputstream
    `long` | `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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.

  - ### Constructor Detail

    - #### GzipOutputFilter

          public GzipOutputFilter()

  - ### Method Detail

    - #### 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 interface `OutputBuffer`
      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 interface `OutputBuffer`
      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 interface `HttpOutputBuffer`
      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 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 java.io.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:
        `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 interface `OutputFilter`