Package org.apache.coyote
Class Response
- java.lang.Object
-
- org.apache.coyote.Response
-
public final class Response extends java.lang.ObjectResponse object.- Author:
- James Duncan Davidson [duncan@eng.sun.com], Jason Hunter [jch@eng.sun.com], James Todd [gonzo@eng.sun.com], Harish Prabandham, Hans Bergsten [hans@gefionsoftware.com], Remy Maucherat
-
-
Constructor Summary
Constructors Constructor Description Response()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaction(ActionCode actionCode, java.lang.Object param)voidaddHeader(java.lang.String name, java.lang.String value)voidaddHeader(java.lang.String name, java.lang.String value, java.nio.charset.Charset charset)booleancheckRegisterForWrite()booleancontainsHeader(java.lang.String name)Does the response contain the given header.voiddoWrite(java.nio.ByteBuffer chunk)Write a chunk of bytes.longgetBytesWritten(boolean flush)Bytes written to socket - i.e. after compression, chunking, etc.java.lang.StringgetCharacterEncoding()java.nio.charset.CharsetgetCharset()longgetCommitTime()Return the time the response was committed (based on System.currentTimeMillis).longgetCommitTimeNanos()Return the time the response was committed (based on System.nanoTime).java.lang.StringgetContentLanguage()Return the content language.intgetContentLength()longgetContentLengthLong()java.lang.StringgetContentType()longgetContentWritten()Bytes written by application - i.e. before compression, chunking, etc.java.lang.ExceptiongetErrorException()Get the Exception that occurred during the writing of the response.java.util.LocalegetLocale()java.lang.StringgetMessage()Get the status message.MimeHeadersgetMimeHeaders()java.lang.ObjectgetNote(int pos)RequestgetRequest()intgetStatus()java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>getTrailerFields()WriteListenergetWriteListener()booleanisCommitted()booleanisError()Error flag accessor.booleanisErrorReportRequired()booleanisExceptionPresent()booleanisReady()voidonWritePossible()voidrecycle()voidreset()voidsendHeaders()Signal that we're done with the headers, and body will follow.voidsetCharacterEncoding(java.lang.String characterEncoding)Overrides the character encoding used in the body of the response.voidsetCommitted(boolean v)voidsetContentLength(long contentLength)voidsetContentType(java.lang.String type)Sets the content type.voidsetContentTypeNoCharset(java.lang.String type)booleansetError()Set the error flag.voidsetErrorException(java.lang.Exception ex)Set the error Exception that occurred during the writing of the response processing.booleansetErrorReported()voidsetHeader(java.lang.String name, java.lang.String value)protected voidsetHook(ActionHook hook)voidsetLocale(java.util.Locale locale)Called explicitly by user to set the Content-Language and the default encoding.voidsetMessage(java.lang.String message)Set the status message.voidsetNote(int pos, java.lang.Object value)voidsetOutputBuffer(OutputBuffer outputBuffer)voidsetRequest(Request req)voidsetStatus(int status)Set the response status.voidsetTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> supplier)voidsetWriteListener(WriteListener listener)
-
-
-
Method Detail
-
getRequest
public Request getRequest()
-
setRequest
public void setRequest(Request req)
-
setOutputBuffer
public void setOutputBuffer(OutputBuffer outputBuffer)
-
getMimeHeaders
public MimeHeaders getMimeHeaders()
-
setHook
protected void setHook(ActionHook hook)
-
setNote
public final void setNote(int pos, java.lang.Object value)
-
getNote
public final java.lang.Object getNote(int pos)
-
action
public void action(ActionCode actionCode, java.lang.Object param)
-
getStatus
public int getStatus()
-
setStatus
public void setStatus(int status)
Set the response status.- Parameters:
status- The status value to set
-
getMessage
public java.lang.String getMessage()
Get the status message.- Returns:
- The message associated with the current status
-
setMessage
public void setMessage(java.lang.String message)
Set the status message.- Parameters:
message- The status message to set
-
isCommitted
public boolean isCommitted()
-
setCommitted
public void setCommitted(boolean v)
-
getCommitTime
public long getCommitTime()
Return the time the response was committed (based on System.currentTimeMillis).- Returns:
- the time the response was committed
-
getCommitTimeNanos
public long getCommitTimeNanos()
Return the time the response was committed (based on System.nanoTime).- Returns:
- the time the response was committed
-
setErrorException
public void setErrorException(java.lang.Exception ex)
Set the error Exception that occurred during the writing of the response processing.- Parameters:
ex- The exception that occurred
-
getErrorException
public java.lang.Exception getErrorException()
Get the Exception that occurred during the writing of the response.- Returns:
- The exception that occurred
-
isExceptionPresent
public boolean isExceptionPresent()
-
setError
public boolean setError()
Set the error flag.- Returns:
falseif the error flag was already set
-
isError
public boolean isError()
Error flag accessor.- Returns:
trueif the response has encountered an error
-
isErrorReportRequired
public boolean isErrorReportRequired()
-
setErrorReported
public boolean setErrorReported()
-
reset
public void reset() throws java.lang.IllegalStateException- Throws:
java.lang.IllegalStateException
-
containsHeader
public boolean containsHeader(java.lang.String name)
Does the response contain the given header.
Warning: This method always returnsfalsefor Content-Type and Content-Length.- Parameters:
name- The name of the header of interest- Returns:
trueif the response contains the header.
-
setHeader
public void setHeader(java.lang.String name, java.lang.String value)
-
addHeader
public void addHeader(java.lang.String name, java.lang.String value)
-
addHeader
public void addHeader(java.lang.String name, java.lang.String value, java.nio.charset.Charset charset)
-
setTrailerFields
public void setTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> supplier)
-
getTrailerFields
public java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> getTrailerFields()
-
sendHeaders
public void sendHeaders()
Signal that we're done with the headers, and body will follow. Any implementation needs to notify ContextManager, to allow interceptors to fix headers.
-
getLocale
public java.util.Locale getLocale()
-
setLocale
public void setLocale(java.util.Locale locale)
Called explicitly by user to set the Content-Language and the default encoding.- Parameters:
locale- The locale to use for this response
-
getContentLanguage
public java.lang.String getContentLanguage()
Return the content language.- Returns:
- The language code for the language currently associated with this response
-
setCharacterEncoding
public void setCharacterEncoding(java.lang.String characterEncoding) throws java.io.UnsupportedEncodingExceptionOverrides the character encoding used in the body of the response. This method must be called prior to writing output using getWriter().- Parameters:
characterEncoding- The name of character encoding.- Throws:
java.io.UnsupportedEncodingException- If the specified name is not recognised
-
getCharset
public java.nio.charset.Charset getCharset()
-
getCharacterEncoding
public java.lang.String getCharacterEncoding()
- Returns:
- The name of the current encoding
-
setContentType
public void setContentType(java.lang.String type)
Sets the content type. This method must preserve any response charset that may already have been set via a call to response.setContentType(), response.setLocale(), or response.setCharacterEncoding().- Parameters:
type- the content type
-
setContentTypeNoCharset
public void setContentTypeNoCharset(java.lang.String type)
-
getContentType
public java.lang.String getContentType()
-
setContentLength
public void setContentLength(long contentLength)
-
getContentLength
public int getContentLength()
-
getContentLengthLong
public long getContentLengthLong()
-
doWrite
public void doWrite(java.nio.ByteBuffer chunk) throws java.io.IOExceptionWrite a chunk of bytes.- Parameters:
chunk- The ByteBuffer to write- Throws:
java.io.IOException- If an I/O error occurs during the write
-
recycle
public void recycle()
-
getContentWritten
public long getContentWritten()
Bytes written by application - i.e. before compression, chunking, etc.- Returns:
- The total number of bytes written to the response by the application. This will not be the number of bytes written to the network which may be more or less than this value.
-
getBytesWritten
public long getBytesWritten(boolean flush)
Bytes written to socket - i.e. after compression, chunking, etc.- Parameters:
flush- Should any remaining bytes be flushed before returning the total? Iffalsebytes remaining in the buffer will not be included in the returned value- Returns:
- The total number of bytes written to the socket for this response
-
getWriteListener
public WriteListener getWriteListener()
-
setWriteListener
public void setWriteListener(WriteListener listener)
-
isReady
public boolean isReady()
-
checkRegisterForWrite
public boolean checkRegisterForWrite()
-
onWritePossible
public void onWritePossible() throws java.io.IOException- Throws:
java.io.IOException
-
-