org.tinygroup.weblayer.webcontext.buffered.response
类 BufferedResponseImpl

java.lang.Object
  继承者 javax.servlet.ServletResponseWrapper
      继承者 javax.servlet.http.HttpServletResponseWrapper
          继承者 org.tinygroup.weblayer.webcontext.AbstractResponseWrapper
              继承者 org.tinygroup.weblayer.webcontext.buffered.response.BufferedResponseImpl
所有已实现的接口:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class BufferedResponseImpl
extends AbstractResponseWrapper

包裹HttpServletResponse,使之输出到内存中。

作者:
renhui

字段摘要
 
从接口 javax.servlet.http.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
 
构造方法摘要
BufferedResponseImpl(WebContext webContext, javax.servlet.http.HttpServletResponse response)
          创建一个BufferedResponseImpl
 
方法摘要
 void commitBuffer()
          将buffer中的内容提交到真正的servlet输出流中。
 void flushBuffer()
          冲洗buffer。
 javax.servlet.ServletOutputStream getOutputStream()
          取得输出流。
 PrintWriter getWriter()
          取得输出字符流。
 boolean isBuffering()
          设置是否将所有信息保存在内存中。
 org.tinygroup.commons.io.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长度。
 
从类 org.tinygroup.weblayer.webcontext.AbstractResponseWrapper 继承的方法
getServletContext, getWebContext, toString
 
从类 javax.servlet.http.HttpServletResponseWrapper 继承的方法
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
 
从类 javax.servlet.ServletResponseWrapper 继承的方法
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, setBufferSize, setCharacterEncoding, setContentType, setLocale, setResponse
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
从接口 javax.servlet.ServletResponse 继承的方法
getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, setBufferSize, setCharacterEncoding, setContentType, setLocale
 

构造方法详细信息

BufferedResponseImpl

public BufferedResponseImpl(WebContext webContext,
                            javax.servlet.http.HttpServletResponse response)
创建一个BufferedResponseImpl

参数:
requestContext - response所在的request context
response - 原始的response
方法详细信息

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws IOException
取得输出流。

指定者:
接口 javax.servlet.ServletResponse 中的 getOutputStream
覆盖:
javax.servlet.ServletResponseWrapper 中的 getOutputStream
返回:
response的输出流
抛出:
IOException - 输入输出失败

getWriter

public PrintWriter getWriter()
                      throws IOException
取得输出字符流。

指定者:
接口 javax.servlet.ServletResponse 中的 getWriter
覆盖:
javax.servlet.ServletResponseWrapper 中的 getWriter
返回:
response的输出字符流
抛出:
IOException - 输入输出失败

setContentLength

public void setContentLength(int length)
设置content长度。该调用只在setBuffering(false)时有效。

指定者:
接口 javax.servlet.ServletResponse 中的 setContentLength
覆盖:
javax.servlet.ServletResponseWrapper 中的 setContentLength
参数:
length - content长度

flushBuffer

public void flushBuffer()
                 throws IOException
冲洗buffer。

指定者:
接口 javax.servlet.ServletResponse 中的 flushBuffer
覆盖:
javax.servlet.ServletResponseWrapper 中的 flushBuffer
抛出:
IOException - 如果失败

resetBuffer

public void resetBuffer()
清除所有buffers,常用于显示出错信息。

指定者:
接口 javax.servlet.ServletResponse 中的 resetBuffer
覆盖:
javax.servlet.ServletResponseWrapper 中的 resetBuffer
抛出:
IllegalStateException - 如果response已经commit

isBuffering

public boolean isBuffering()
设置是否将所有信息保存在内存中。

返回:
如果是,则返回true

setBuffering

public void setBuffering(boolean buffering)
设置buffer模式,如果设置成true,表示将所有信息保存在内存中,否则直接输出到原始response中。

此方法必须在getOutputStreamgetWriter方法之前执行,否则将抛出 IllegalStateException

参数:
buffering - 是否buffer内容
抛出:
IllegalStateException - getOutputStreamgetWriter方法已经被执行

pushBuffer

public void pushBuffer()
创建新的buffer,保存老的buffer。

抛出:
IllegalStateException - 如果不在buffer模式,或getWriter 方法曾被调用,或getOutputStream方法从未被调用

popByteBuffer

public org.tinygroup.commons.io.ByteArray popByteBuffer()
弹出最近的buffer,如果堆栈中只有一个buffer,则弹出后再创建一个新的。

返回:
最近的buffer内容,如果getOutputStream方法从未被调用,则返回空的byte array
抛出:
IllegalStateException - 如果不在buffer模式,或getWriter方法曾被调用

popCharBuffer

public String popCharBuffer()
弹出最近的buffer,如果堆栈中只有一个buffer,则弹出后再创建一个新的。

返回:
最近的buffer内容,如果getWriter方法从未被调用,则返回空的字符串
抛出:
IllegalStateException - 如果不在buffer模式,或getOutputStream 方法曾被调用

commitBuffer

public void commitBuffer()
                  throws IOException
将buffer中的内容提交到真正的servlet输出流中。

如果从来没有执行过getOutputStreamgetWriter 方法,则该方法不做任何事情。

抛出:
IOException - 如果输入输出失败
IllegalStateException - 如果不是在buffer模式,或buffer栈中不止一个buffer


Copyright © 2006–2013 开源组织. All rights reserved.