class SmartOutputStream extends TemporaryBuffer
If the response overflows the buffer, gzip is skipped and the response is
streamed to the client as its produced, most likely using HTTP/1.1 chunked
encoding. This is useful for servlets that produce mixed-mode content, where
smaller payloads are primarily pure text that compresses well, while much
larger payloads are heavily compressed binary data. UploadPackServlet
is one such servlet.
TemporaryBuffer.Heap, TemporaryBuffer.LocalFile
Modifier and Type | Field and Description |
---|---|
private boolean |
compressStream |
private static int |
LIMIT |
private javax.servlet.http.HttpServletRequest |
req |
private javax.servlet.http.HttpServletResponse |
rsp |
private boolean |
startedOutput |
DEFAULT_IN_CORE_LIMIT
Constructor and Description |
---|
SmartOutputStream(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse rsp,
boolean compressStream) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
protected java.io.OutputStream |
overflow()
Open the overflow output stream, so the remaining output can be stored.
|
private void |
writeResponse(TemporaryBuffer out) |
copy, destroy, doFlush, length, openInputStream, openInputStreamWithAutoDestroy, reset, toByteArray, toByteArray, write, write, writeTo
private static final int LIMIT
private final javax.servlet.http.HttpServletRequest req
private final javax.servlet.http.HttpServletResponse rsp
private boolean compressStream
private boolean startedOutput
SmartOutputStream(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse rsp, boolean compressStream)
protected java.io.OutputStream overflow() throws java.io.IOException
overflow
in class TemporaryBuffer
java.io.IOException
- the buffer cannot create the overflow stream.public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class TemporaryBuffer
java.io.IOException
private void writeResponse(TemporaryBuffer out) throws java.io.IOException
java.io.IOException