public class BufferedResponseImpl extends AbstractResponseWrapper
HttpServletResponse
,使之输出到内存中。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 |
---|
BufferedResponseImpl(WebContext webContext,
javax.servlet.http.HttpServletResponse response)
创建一个
BufferedResponseImpl 。 |
Modifier and Type | Method and Description |
---|---|
void |
commitBuffer()
将buffer中的内容提交到真正的servlet输出流中。
|
void |
flushBuffer()
冲洗buffer。
|
javax.servlet.ServletOutputStream |
getOutputStream()
取得输出流。
|
PrintWriter |
getWriter()
取得输出字符流。
|
boolean |
isBuffering()
设置是否将所有信息保存在内存中。
|
ByteArray |
peekByteBuffer()
返回最上层的ByteArray
|
String |
peekCharBuffer()
返回最上层的buffer
|
ByteArray |
popByteBuffer()
弹出最近的buffer,如果堆栈中只有一个buffer,则弹出后再创建一个新的。
|
String |
popCharBuffer()
弹出最近的buffer,如果堆栈中只有一个buffer,则弹出后再创建一个新的。
|
void |
pushBuffer()
创建新的buffer,保存老的buffer。
|
void |
resetBuffer()
清除所有buffers,常用于显示出现异常信息。
|
void |
setBuffering(boolean buffering)
设置buffer模式,如果设置成
true ,表示将所有信息保存在内存中,否则直接输出到原始response中。 |
void |
setContentLength(int length)
设置content长度。该调用只在
setBuffering(false) 时有效。 |
getServletContext, getWebContext, toString
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, setBufferSize, setCharacterEncoding, setContentType, setLocale, setResponse
public BufferedResponseImpl(WebContext webContext, javax.servlet.http.HttpServletResponse response)
BufferedResponseImpl
。requestContext
- response所在的request contextresponse
- 原始的responsepublic javax.servlet.ServletOutputStream getOutputStream() throws IOException
getOutputStream
in interface javax.servlet.ServletResponse
getOutputStream
in class javax.servlet.ServletResponseWrapper
IOException
- 输入输出失败public PrintWriter getWriter() throws IOException
getWriter
in interface javax.servlet.ServletResponse
getWriter
in class javax.servlet.ServletResponseWrapper
IOException
- 输入输出失败public void setContentLength(int length)
setBuffering(false)
时有效。setContentLength
in interface javax.servlet.ServletResponse
setContentLength
in class javax.servlet.ServletResponseWrapper
length
- content长度public void flushBuffer() throws IOException
flushBuffer
in interface javax.servlet.ServletResponse
flushBuffer
in class javax.servlet.ServletResponseWrapper
IOException
- 如果失败public void resetBuffer()
resetBuffer
in interface javax.servlet.ServletResponse
resetBuffer
in class javax.servlet.ServletResponseWrapper
IllegalStateException
- 如果response已经commitpublic boolean isBuffering()
true
public void setBuffering(boolean buffering)
true
,表示将所有信息保存在内存中,否则直接输出到原始response中。
此方法必须在getOutputStream
和getWriter
方法之前执行,否则将抛出
IllegalStateException
。
buffering
- 是否buffer内容IllegalStateException
- getOutputStream
或
getWriter
方法已经被执行public void pushBuffer()
IllegalStateException
- 如果不在buffer模式,或getWriter
方法曾被调用,或getOutputStream
方法从未被调用public ByteArray popByteBuffer()
getOutputStream
方法从未被调用,则返回空的byte arrayIllegalStateException
- 如果不在buffer模式,或getWriter
方法曾被调用public ByteArray peekByteBuffer()
getOutputStream
方法从未被调用,则返回空的byte arrayIllegalStateException
- 如果不在buffer模式,或getWriter
方法曾被调用public String popCharBuffer()
getWriter
方法从未被调用,则返回空的字符串IllegalStateException
- 如果不在buffer模式,或getOutputStream
方法曾被调用public String peekCharBuffer()
getWriter
方法从未被调用,则返回空的字符串IllegalStateException
- 如果不在buffer模式,或getOutputStream
方法曾被调用public void commitBuffer() throws IOException
如果从来没有执行过getOutputStream
或getWriter
方法,则该方法不做任何事情。
IOException
- 如果输入输出失败IllegalStateException
- 如果不是在buffer模式,或buffer栈中不止一个bufferCopyright © 2006–2018 TinyGroup. All rights reserved.