Package org.apache.catalina.filters

## Class ExpiresFilter.XServletOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - jakarta.servlet.ServletOutputStream
    - - org.apache.catalina.filters.ExpiresFilter.XServletOutputStream

All Implemented Interfaces:
  `Closeable`, `Flushable`, `AutoCloseable`

Enclosing class:
  ExpiresFilter

    public class ExpiresFilter.XServletOutputStream
    extends ServletOutputStream

Wrapping extension of `ServletOutputStream` to trap the "Start Write Response Body" event.

### Constructor Summary

Constructors
`XServletOutputStream​(ServletOutputStream servletOutputStream, HttpServletRequest request, ExpiresFilter.XHttpServletResponse response)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()`
`void` `flush()`
`boolean` `isReady()` TODO SERVLET 3.1
`void` `print​(boolean b)` Writes a `boolean` value to the client, with no carriage return-line feed (CRLF) character at the end.
`void` `print​(char c)` Writes a character to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(double d)` Writes a `double` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(float f)` Writes a `float` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(int i)` Writes an int to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(long l)` Writes a `long` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(String s)` Writes a `String` to the client, without a carriage return-line feed (CRLF) character at the end.
`void` `println()` Writes a carriage return-line feed (CRLF) to the client.
`void` `println​(boolean b)` Writes a `boolean` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(char c)` Writes a character to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(double d)` Writes a `double` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(float f)` Writes a `float` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(int i)` Writes an int to the client, followed by a carriage return-line feed (CRLF) character.
`void` `println​(long l)` Writes a `long` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(String s)` Writes a `String` to the client, followed by a carriage return-line feed (CRLF).
`void` `setWriteListener​(WriteListener listener)` TODO SERVLET 3.1
`void` `write​(byte[] b)`
`void` `write​(byte[] b, int off, int len)`
`void` `write​(int b)`

### Methods inherited from class java.io.OutputStream

`nullOutputStream`

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

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

### Constructor Detail

#### XServletOutputStream

    public XServletOutputStream​(ServletOutputStream servletOutputStream,
                                HttpServletRequest request,
                                ExpiresFilter.XHttpServletResponse response)

### Method Detail

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `OutputStream`
Throws:
  `IOException`

#### flush

    public void flush()
               throws IOException

Specified by:
  `flush` in interface `Flushable`
Overrides:
  `flush` in class `OutputStream`
Throws:
  `IOException`

#### print

    public void print​(boolean b)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `boolean` value to the client, with no carriage return-line feed (CRLF) character at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `b` - the `boolean` value to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(char c)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a character to the client, with no carriage return-line feed (CRLF) at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `c` - the character to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(double d)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `double` value to the client, with no carriage return-line feed (CRLF) at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `d` - the `double` value to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(float f)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `float` value to the client, with no carriage return-line feed (CRLF) at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `f` - the `float` value to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(int i)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes an int to the client, with no carriage return-line feed (CRLF) at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `i` - the int to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(long l)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `long` value to the client, with no carriage return-line feed (CRLF) at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `l` - the `long` value to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### print

    public void print​(String s)
               throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `String` to the client, without a carriage return-line feed (CRLF) character at the end.

Overrides:
  `print` in class `ServletOutputStream`
Parameters:
  `s` - the `String` to send to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println()
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a carriage return-line feed (CRLF) to the client.

Overrides:
  `println` in class `ServletOutputStream`
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(boolean b)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `boolean` value to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `b` - the `boolean` value to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(char c)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a character to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `c` - the character to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(double d)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `double` value to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `d` - the `double` value to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(float f)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `float` value to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `f` - the `float` value to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(int i)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes an int to the client, followed by a carriage return-line feed (CRLF) character.

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `i` - the int to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(long l)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `long` value to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `l` - the `long` value to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### println

    public void println​(String s)
                 throws IOException

Description copied from class: `jakarta.servlet.ServletOutputStream`
Writes a `String` to the client, followed by a carriage return-line feed (CRLF).

Overrides:
  `println` in class `ServletOutputStream`
Parameters:
  `s` - the `String` to write to the client
Throws:
  `IOException` - if an input or output exception occurred

#### write

    public void write​(byte[] b)
               throws IOException

Overrides:
  `write` in class `OutputStream`
Throws:
  `IOException`

#### write

    public void write​(byte[] b,
                      int off,
                      int len)
               throws IOException

Overrides:
  `write` in class `OutputStream`
Throws:
  `IOException`

#### write

    public void write​(int b)
               throws IOException

Specified by:
  `write` in class `OutputStream`
Throws:
  `IOException`

#### isReady

    public boolean isReady()

TODO SERVLET 3.1

Specified by:
  `isReady` in class `ServletOutputStream`
Returns:
  `true` if data can be written, else `false`

#### setWriteListener

    public void setWriteListener​(WriteListener listener)

TODO SERVLET 3.1

Specified by:
  `setWriteListener` in class `ServletOutputStream`
Parameters:
  `listener` - The non-blocking IO write listener