public class BufferCacheServletResponse extends MetaInfoCacheServletResponse
MetaInfoCacheServletResponse.MetaData
calledGetOutputStream, calledGetWriter
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
Constructor and Description |
---|
BufferCacheServletResponse(javax.servlet.http.HttpServletResponse response) |
Modifier and Type | Method and Description |
---|---|
int |
getBufferSize()
This method is very expensive when used in char mode because it has to
encode every char to byte in order to calculate the final byte size.
|
ByteBuffer |
getByteBuffer()
In char mode, this method will encode every char to byte using the
character set from
MetaInfoCacheServletResponse.getCharacterEncoding() . |
CharBuffer |
getCharBuffer()
In char mode, this method will encode every byte to char using the
character set from
MetaInfoCacheServletResponse.getCharacterEncoding() . |
javax.servlet.ServletOutputStream |
getOutputStream() |
String |
getString() |
StringBundler |
getStringBundler() |
PrintWriter |
getWriter() |
boolean |
isByteMode() |
boolean |
isCharMode() |
void |
outputBuffer() |
protected void |
resetBuffer(boolean nullOutReferences)
Stub method for subclass to provide buffer resetting logic.
|
void |
setBufferSize(int bufferSize) |
void |
setByteBuffer(ByteBuffer byteBuffer) |
void |
setCharBuffer(CharBuffer charBuffer) |
void |
setContentLength(int contentLength) |
void |
setContentLengthLong(long contentLength) |
void |
setString(String string) |
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, finishResponse, finishResponse, finishResponse, flushBuffer, getCharacterEncoding, getContentType, getHeader, getHeaderNames, getHeaders, getHeaders, getLocale, getMetaData, getStatus, isCommitted, reset, resetBuffer, resetThrough, sendError, sendError, sendRedirect, setCharacterEncoding, setContentType, setDateHeader, setHeader, setIntHeader, setLocale, setStatus, setStatus, toString
encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL
public BufferCacheServletResponse(javax.servlet.http.HttpServletResponse response)
public int getBufferSize()
getBufferSize
in interface javax.servlet.ServletResponse
getBufferSize
in class MetaInfoCacheServletResponse
public ByteBuffer getByteBuffer() throws IOException
MetaInfoCacheServletResponse.getCharacterEncoding()
. Generally, this
method should be called after the last text based post-processing.
Otherwise, you may need decode the byte back to char again which will
result in a lot of unnecessary CPU overhead.IOException
public CharBuffer getCharBuffer() throws IOException
MetaInfoCacheServletResponse.getCharacterEncoding()
. Make sure the byte
data is actually encoded chars. Otherwise, the decoding will generate
meaningless data, or worse, even encode the output back and the exact
same character set may not able to retrieve the exact same byte data. For
example, decode an image byte data to char, then encode the chars back to
byte with same character set, will most likely create a corrupted image.IOException
public javax.servlet.ServletOutputStream getOutputStream()
getOutputStream
in interface javax.servlet.ServletResponse
getOutputStream
in class MetaInfoCacheServletResponse
public String getString() throws IOException
IOException
getCharBuffer()
public StringBundler getStringBundler() throws IOException
IOException
getCharBuffer()
public PrintWriter getWriter()
getWriter
in interface javax.servlet.ServletResponse
getWriter
in class MetaInfoCacheServletResponse
public boolean isByteMode()
public boolean isCharMode()
public void outputBuffer() throws IOException
IOException
public void setBufferSize(int bufferSize)
setBufferSize
in interface javax.servlet.ServletResponse
setBufferSize
in class MetaInfoCacheServletResponse
public void setByteBuffer(ByteBuffer byteBuffer)
public void setCharBuffer(CharBuffer charBuffer)
public void setContentLength(int contentLength)
setContentLength
in interface javax.servlet.ServletResponse
setContentLength
in class MetaInfoCacheServletResponse
public void setContentLengthLong(long contentLength)
setContentLengthLong
in interface javax.servlet.ServletResponse
setContentLengthLong
in class MetaInfoCacheServletResponse
public void setString(String string)
protected void resetBuffer(boolean nullOutReferences)
MetaInfoCacheServletResponse
resetBuffer
in class MetaInfoCacheServletResponse
nullOutReferences
- whether to reset flags. It is not directly used
by this class. Subclasses with an actual buffer may behave
differently depending on the value of this parameter.