Package org.apache.coyote
Class Response
- java.lang.Object
-
- org.apache.coyote.Response
-
public final class Response extends java.lang.Object
Response 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 void
action(ActionCode actionCode, java.lang.Object param)
void
addHeader(java.lang.String name, java.lang.String value)
void
addHeader(java.lang.String name, java.lang.String value, java.nio.charset.Charset charset)
boolean
checkRegisterForWrite()
boolean
containsHeader(java.lang.String name)
Does the response contain the given header.void
doWrite(java.nio.ByteBuffer chunk)
Write a chunk of bytes.long
getBytesWritten(boolean flush)
Bytes written to socket - i.e. after compression, chunking, etc.java.lang.String
getCharacterEncoding()
java.nio.charset.Charset
getCharset()
long
getCommitTime()
Return the time the response was committed (based on System.currentTimeMillis).long
getCommitTimeNanos()
Return the time the response was committed (based on System.nanoTime).java.lang.String
getContentLanguage()
Return the content language.int
getContentLength()
long
getContentLengthLong()
java.lang.String
getContentType()
long
getContentWritten()
Bytes written by application - i.e. before compression, chunking, etc.java.lang.Exception
getErrorException()
Get the Exception that occurred during the writing of the response.java.util.Locale
getLocale()
java.lang.String
getMessage()
Get the status message.MimeHeaders
getMimeHeaders()
java.lang.Object
getNote(int pos)
Request
getRequest()
int
getStatus()
java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>
getTrailerFields()
WriteListener
getWriteListener()
boolean
isCommitted()
boolean
isError()
Error flag accessor.boolean
isErrorReportRequired()
boolean
isExceptionPresent()
boolean
isReady()
void
onWritePossible()
void
recycle()
void
reset()
void
sendHeaders()
Signal that we're done with the headers, and body will follow.void
setCharacterEncoding(java.lang.String characterEncoding)
Overrides the character encoding used in the body of the response.void
setCommitted(boolean v)
void
setContentLength(long contentLength)
void
setContentType(java.lang.String type)
Sets the content type.void
setContentTypeNoCharset(java.lang.String type)
boolean
setError()
Set the error flag.void
setErrorException(java.lang.Exception ex)
Set the error Exception that occurred during the writing of the response processing.boolean
setErrorReported()
void
setHeader(java.lang.String name, java.lang.String value)
protected void
setHook(ActionHook hook)
void
setLocale(java.util.Locale locale)
Called explicitly by user to set the Content-Language and the default encoding.void
setMessage(java.lang.String message)
Set the status message.void
setNote(int pos, java.lang.Object value)
void
setOutputBuffer(OutputBuffer outputBuffer)
void
setRequest(Request req)
void
setStatus(int status)
Set the response status.void
setTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> supplier)
void
setWriteListener(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:
false
if the error flag was already set
-
isError
public boolean isError()
Error flag accessor.- Returns:
true
if 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 returnsfalse
for Content-Type and Content-Length.- Parameters:
name
- The name of the header of interest- Returns:
true
if 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.UnsupportedEncodingException
Overrides 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.IOException
Write 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? Iffalse
bytes 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
-
-