# 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
Constructor
Description
`XServletOutputStream(ServletOutputStream servletOutputStream, HttpServletRequest request, ExpiresFilter.XHttpServletResponse response)`

## Method Summary

Modifier and Type
Method
Description
`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 ServletOutputStream

`write`

### Methods inherited from class OutputStream

`nullOutputStream`

### Methods inherited from class Object

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

## Constructor Details

### XServletOutputStream

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

## Method Details

### close

public void close() throws IOException
Description copied from class: `jakarta.servlet.ServletOutputStream`

If this method is called when the output stream is in non-blocking mode, it will immediately return with the stream effectively closed, even if the stream contains buffered data that is yet to be written to client. The container will write this data out in the background. If this process fails the `WriteListener.onError(Throwable)` method will be invoked as normal.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `ServletOutputStream`
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 without blocking, otherwise returns `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