Package org.eclipse.jetty.server
Class Response
- java.lang.Object
-
- org.eclipse.jetty.server.Response
-
- All Implemented Interfaces:
javax.servlet.http.HttpServletResponse
,javax.servlet.ServletResponse
public class Response extends java.lang.Object implements javax.servlet.http.HttpServletResponse
Response
provides the implementation forHttpServletResponse
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Response.OutputType
-
Field Summary
Fields Modifier and Type Field Description static int
NO_CONTENT_LENGTH
static java.lang.String
SET_INCLUDE_HEADER_PREFIX
If a header name starts with this string, the header (stripped of the prefix) can be set during include using onlysetHeader(String, String)
oraddHeader(String, String)
.static int
USE_KNOWN_CONTENT_LENGTH
-
Fields inherited from interface 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
-
-
Constructor Summary
Constructors Constructor Description Response(HttpChannel channel, HttpOutput out)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addCookie(javax.servlet.http.Cookie cookie)
void
addCookie(HttpCookie cookie)
void
addDateHeader(java.lang.String name, long date)
void
addHeader(java.lang.String name, java.lang.String value)
void
addIntHeader(java.lang.String name, int value)
void
closeOutput()
void
completeOutput()
Deprecated.UsecloseOutput()
void
completeOutput(Callback callback)
boolean
containsHeader(java.lang.String name)
java.lang.String
encodeRedirectUrl(java.lang.String url)
Deprecated.java.lang.String
encodeRedirectURL(java.lang.String url)
java.lang.String
encodeUrl(java.lang.String url)
Deprecated.java.lang.String
encodeURL(java.lang.String url)
void
errorClose()
void
flushBuffer()
int
getBufferSize()
java.lang.String
getCharacterEncoding()
MetaData.Response
getCommittedMetaData()
Get the MetaData.Response committed for this response.long
getContentCount()
long
getContentLength()
java.lang.String
getContentType()
java.lang.String
getHeader(java.lang.String name)
java.util.Collection<java.lang.String>
getHeaderNames()
java.util.Collection<java.lang.String>
getHeaders(java.lang.String name)
HttpChannel
getHttpChannel()
HttpFields
getHttpFields()
HttpOutput
getHttpOutput()
java.util.Locale
getLocale()
long
getLongContentLength()
javax.servlet.ServletOutputStream
getOutputStream()
java.lang.String
getReason()
int
getStatus()
java.util.function.Supplier<HttpFields>
getTrailers()
java.io.PrintWriter
getWriter()
void
include()
void
included()
boolean
isAllContentWritten(long written)
boolean
isCommitted()
boolean
isContentComplete(long written)
boolean
isIncluding()
boolean
isStreaming()
boolean
isWriting()
boolean
isWritingOrStreaming()
protected MetaData.Response
newResponseMetaData()
static void
putHeaders(javax.servlet.http.HttpServletResponse response, HttpContent content, long contentLength, boolean etag)
void
putHeaders(HttpContent content, long contentLength, boolean etag)
protected void
recycle()
void
reopen()
void
replaceCookie(HttpCookie cookie)
Replace (or add) a cookie.void
reset()
void
resetBuffer()
void
resetContent()
void
resetForForward()
void
sendError(int sc)
void
sendError(int code, java.lang.String message)
Send an error response.void
sendProcessing()
Sends a 102-Processing response.void
sendRedirect(int code, java.lang.String location)
Sends a response with one of the 300 series redirection codes.void
sendRedirect(int code, java.lang.String location, boolean consumeAll)
Sends a response with a given redirection code.void
sendRedirect(java.lang.String location)
void
sendRedirect(java.lang.String location, boolean consumeAll)
Sends a response with a HTTP version appropriate 30x redirection.void
setBufferSize(int size)
void
setCharacterEncoding(java.lang.String encoding)
void
setContentLength(int len)
void
setContentLengthLong(long length)
void
setContentType(java.lang.String contentType)
void
setDateHeader(java.lang.String name, long date)
void
setHeader(java.lang.String name, java.lang.String value)
void
setHeader(HttpHeader name, java.lang.String value)
void
setIntHeader(java.lang.String name, int value)
void
setLocale(java.util.Locale locale)
void
setLongContentLength(long len)
void
setStatus(int sc)
void
setStatus(int sc, java.lang.String sm)
Deprecated.void
setStatusWithReason(int sc, java.lang.String sm)
void
setTrailers(java.util.function.Supplier<HttpFields> trailers)
java.lang.String
toString()
static javax.servlet.http.HttpServletResponse
unwrap(javax.servlet.ServletResponse servletResponse)
-
-
-
Field Detail
-
NO_CONTENT_LENGTH
public static final int NO_CONTENT_LENGTH
- See Also:
- Constant Field Values
-
USE_KNOWN_CONTENT_LENGTH
public static final int USE_KNOWN_CONTENT_LENGTH
- See Also:
- Constant Field Values
-
SET_INCLUDE_HEADER_PREFIX
public static final java.lang.String SET_INCLUDE_HEADER_PREFIX
If a header name starts with this string, the header (stripped of the prefix) can be set during include using onlysetHeader(String, String)
oraddHeader(String, String)
.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Response
public Response(HttpChannel channel, HttpOutput out)
-
-
Method Detail
-
getHttpChannel
public HttpChannel getHttpChannel()
-
recycle
protected void recycle()
-
getHttpOutput
public HttpOutput getHttpOutput()
-
reopen
public void reopen()
-
errorClose
public void errorClose()
-
isIncluding
public boolean isIncluding()
-
include
public void include()
-
included
public void included()
-
addCookie
public void addCookie(HttpCookie cookie)
-
replaceCookie
public void replaceCookie(HttpCookie cookie)
Replace (or add) a cookie. Using name, path and domain, look for a matching set-cookie header and replace it.- Parameters:
cookie
- The cookie to add/replace
-
addCookie
public void addCookie(javax.servlet.http.Cookie cookie)
- Specified by:
addCookie
in interfacejavax.servlet.http.HttpServletResponse
-
containsHeader
public boolean containsHeader(java.lang.String name)
- Specified by:
containsHeader
in interfacejavax.servlet.http.HttpServletResponse
-
encodeURL
public java.lang.String encodeURL(java.lang.String url)
- Specified by:
encodeURL
in interfacejavax.servlet.http.HttpServletResponse
-
encodeRedirectURL
public java.lang.String encodeRedirectURL(java.lang.String url)
- Specified by:
encodeRedirectURL
in interfacejavax.servlet.http.HttpServletResponse
-
encodeUrl
@Deprecated public java.lang.String encodeUrl(java.lang.String url)
Deprecated.- Specified by:
encodeUrl
in interfacejavax.servlet.http.HttpServletResponse
-
encodeRedirectUrl
@Deprecated public java.lang.String encodeRedirectUrl(java.lang.String url)
Deprecated.- Specified by:
encodeRedirectUrl
in interfacejavax.servlet.http.HttpServletResponse
-
sendError
public void sendError(int sc) throws java.io.IOException
- Specified by:
sendError
in interfacejavax.servlet.http.HttpServletResponse
- Throws:
java.io.IOException
-
sendError
public void sendError(int code, java.lang.String message) throws java.io.IOException
Send an error response.In addition to the servlet standard handling, this method supports some additional codes:
- 102
- Send a partial PROCESSING response and allow additional responses
- -1
- Abort the HttpChannel and close the connection/stream
- Specified by:
sendError
in interfacejavax.servlet.http.HttpServletResponse
- Parameters:
code
- The error codemessage
- The message- Throws:
java.io.IOException
- If an IO problem occurred sending the error response.
-
sendProcessing
public void sendProcessing() throws java.io.IOException
Sends a 102-Processing response. If the connection is an HTTP connection, the version is 1.1 and the request has a Expect header starting with 102, then a 102 response is sent. This indicates that the request still be processed and real response can still be sent. This method is called by sendError if it is passed 102.- Throws:
java.io.IOException
- if unable to send the 102 response- See Also:
HttpServletResponse.sendError(int)
-
sendRedirect
public void sendRedirect(int code, java.lang.String location) throws java.io.IOException
Sends a response with one of the 300 series redirection codes.- Parameters:
code
- the redirect status codelocation
- the location to send inLocation
headers- Throws:
java.io.IOException
- if unable to send the redirect
-
sendRedirect
public void sendRedirect(java.lang.String location, boolean consumeAll) throws java.io.IOException
Sends a response with a HTTP version appropriate 30x redirection.- Parameters:
location
- the location to send inLocation
headersconsumeAll
- if True, consume any HTTP/1 request input before doing the redirection. If the input cannot be consumed without blocking, then add a `Connection: close` header to the response.- Throws:
java.io.IOException
- if unable to send the redirect
-
sendRedirect
public void sendRedirect(int code, java.lang.String location, boolean consumeAll) throws java.io.IOException
Sends a response with a given redirection code.- Parameters:
code
- the redirect status codelocation
- the location to send inLocation
headersconsumeAll
- if True, consume any HTTP/1 request input before doing the redirection. If the input cannot be consumed without blocking, then add a `Connection: close` header to the response.- Throws:
java.io.IOException
- if unable to send the redirect
-
sendRedirect
public void sendRedirect(java.lang.String location) throws java.io.IOException
- Specified by:
sendRedirect
in interfacejavax.servlet.http.HttpServletResponse
- Throws:
java.io.IOException
-
setDateHeader
public void setDateHeader(java.lang.String name, long date)
- Specified by:
setDateHeader
in interfacejavax.servlet.http.HttpServletResponse
-
addDateHeader
public void addDateHeader(java.lang.String name, long date)
- Specified by:
addDateHeader
in interfacejavax.servlet.http.HttpServletResponse
-
setHeader
public void setHeader(HttpHeader name, java.lang.String value)
-
setHeader
public void setHeader(java.lang.String name, java.lang.String value)
- Specified by:
setHeader
in interfacejavax.servlet.http.HttpServletResponse
-
getHeaderNames
public java.util.Collection<java.lang.String> getHeaderNames()
- Specified by:
getHeaderNames
in interfacejavax.servlet.http.HttpServletResponse
-
getHeader
public java.lang.String getHeader(java.lang.String name)
- Specified by:
getHeader
in interfacejavax.servlet.http.HttpServletResponse
-
getHeaders
public java.util.Collection<java.lang.String> getHeaders(java.lang.String name)
- Specified by:
getHeaders
in interfacejavax.servlet.http.HttpServletResponse
-
addHeader
public void addHeader(java.lang.String name, java.lang.String value)
- Specified by:
addHeader
in interfacejavax.servlet.http.HttpServletResponse
-
setIntHeader
public void setIntHeader(java.lang.String name, int value)
- Specified by:
setIntHeader
in interfacejavax.servlet.http.HttpServletResponse
-
addIntHeader
public void addIntHeader(java.lang.String name, int value)
- Specified by:
addIntHeader
in interfacejavax.servlet.http.HttpServletResponse
-
setStatus
public void setStatus(int sc)
- Specified by:
setStatus
in interfacejavax.servlet.http.HttpServletResponse
-
setStatus
@Deprecated public void setStatus(int sc, java.lang.String sm)
Deprecated.- Specified by:
setStatus
in interfacejavax.servlet.http.HttpServletResponse
-
setStatusWithReason
public void setStatusWithReason(int sc, java.lang.String sm)
-
getCharacterEncoding
public java.lang.String getCharacterEncoding()
- Specified by:
getCharacterEncoding
in interfacejavax.servlet.ServletResponse
-
getContentType
public java.lang.String getContentType()
- Specified by:
getContentType
in interfacejavax.servlet.ServletResponse
-
getOutputStream
public javax.servlet.ServletOutputStream getOutputStream() throws java.io.IOException
- Specified by:
getOutputStream
in interfacejavax.servlet.ServletResponse
- Throws:
java.io.IOException
-
isWriting
public boolean isWriting()
-
isStreaming
public boolean isStreaming()
-
isWritingOrStreaming
public boolean isWritingOrStreaming()
-
getWriter
public java.io.PrintWriter getWriter() throws java.io.IOException
- Specified by:
getWriter
in interfacejavax.servlet.ServletResponse
- Throws:
java.io.IOException
-
setContentLength
public void setContentLength(int len)
- Specified by:
setContentLength
in interfacejavax.servlet.ServletResponse
-
getContentLength
public long getContentLength()
-
isAllContentWritten
public boolean isAllContentWritten(long written)
-
isContentComplete
public boolean isContentComplete(long written)
-
closeOutput
public void closeOutput() throws java.io.IOException
- Throws:
java.io.IOException
-
completeOutput
@Deprecated public void completeOutput() throws java.io.IOException
Deprecated.UsecloseOutput()
close the output- Throws:
java.io.IOException
-
completeOutput
public void completeOutput(Callback callback)
-
getLongContentLength
public long getLongContentLength()
-
setLongContentLength
public void setLongContentLength(long len)
-
setContentLengthLong
public void setContentLengthLong(long length)
- Specified by:
setContentLengthLong
in interfacejavax.servlet.ServletResponse
-
setCharacterEncoding
public void setCharacterEncoding(java.lang.String encoding)
- Specified by:
setCharacterEncoding
in interfacejavax.servlet.ServletResponse
-
setContentType
public void setContentType(java.lang.String contentType)
- Specified by:
setContentType
in interfacejavax.servlet.ServletResponse
-
setBufferSize
public void setBufferSize(int size)
- Specified by:
setBufferSize
in interfacejavax.servlet.ServletResponse
-
getBufferSize
public int getBufferSize()
- Specified by:
getBufferSize
in interfacejavax.servlet.ServletResponse
-
flushBuffer
public void flushBuffer() throws java.io.IOException
- Specified by:
flushBuffer
in interfacejavax.servlet.ServletResponse
- Throws:
java.io.IOException
-
reset
public void reset()
- Specified by:
reset
in interfacejavax.servlet.ServletResponse
-
resetContent
public void resetContent()
-
resetForForward
public void resetForForward()
-
resetBuffer
public void resetBuffer()
- Specified by:
resetBuffer
in interfacejavax.servlet.ServletResponse
-
setTrailers
public void setTrailers(java.util.function.Supplier<HttpFields> trailers)
-
getTrailers
public java.util.function.Supplier<HttpFields> getTrailers()
-
newResponseMetaData
protected MetaData.Response newResponseMetaData()
-
getCommittedMetaData
public MetaData.Response getCommittedMetaData()
Get the MetaData.Response committed for this response. This may differ from the meta data in this response for exceptional responses (eg 4xx and 5xx responses generated by the container) and the committedMetaData should be used for logging purposes.- Returns:
- The committed MetaData or a
newResponseMetaData()
if not yet committed.
-
isCommitted
public boolean isCommitted()
- Specified by:
isCommitted
in interfacejavax.servlet.ServletResponse
-
setLocale
public void setLocale(java.util.Locale locale)
- Specified by:
setLocale
in interfacejavax.servlet.ServletResponse
-
getLocale
public java.util.Locale getLocale()
- Specified by:
getLocale
in interfacejavax.servlet.ServletResponse
-
getStatus
public int getStatus()
- Specified by:
getStatus
in interfacejavax.servlet.http.HttpServletResponse
-
getReason
public java.lang.String getReason()
-
getHttpFields
public HttpFields getHttpFields()
-
getContentCount
public long getContentCount()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
putHeaders
public void putHeaders(HttpContent content, long contentLength, boolean etag)
-
putHeaders
public static void putHeaders(javax.servlet.http.HttpServletResponse response, HttpContent content, long contentLength, boolean etag)
-
unwrap
public static javax.servlet.http.HttpServletResponse unwrap(javax.servlet.ServletResponse servletResponse)
-
-