Class Response
java.lang.Object
org.eclipse.jetty.server.Response
- All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static enumstatic enum -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final HttpFieldprivate static final EnumSet<Response.EncodingFrom> private static final EnumSet<Response.EncodingFrom> private static final intprivate final HttpChannelprivate Stringprivate longprivate Stringprivate Response.EncodingFromprivate final AtomicBiIntegerprivate final HttpFieldsprivate Localeprivate MimeTypes.Typeprivate final HttpOutputprivate Response.OutputTypeprivate Stringprivate intprivate Supplier<HttpFields> private ResponseWriterprivate static final Loggerstatic final intstatic final StringIf 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 final intFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCookie(javax.servlet.http.Cookie cookie) voidaddCookie(HttpCookie cookie) voidaddDateHeader(String name, long date) voidvoidaddIntHeader(String name, int value) private HttpCookiecheckSameSite(HttpCookie cookie) Check that samesite is set on the cookie.voidvoidDeprecated.voidcompleteOutput(Callback callback) booleancontainsHeader(String name) encodeRedirectUrl(String url) Deprecated.encodeRedirectURL(String url) Deprecated.voidvoidintGet the MetaData.Response committed for this response.longlonggetHeaders(String name) longjavax.servlet.ServletOutputStreamintvoidinclude()voidincluded()booleanisAllContentWritten(long written) booleanbooleanisContentComplete(long written) booleanprivate booleanbooleanbooleanbooleanprotected MetaData.Responsestatic voidputHeaders(javax.servlet.http.HttpServletResponse response, HttpContent content, long contentLength, boolean etag) voidputHeaders(HttpContent content, long contentLength, boolean etag) protected voidrecycle()voidreopen()voidreplaceCookie(HttpCookie cookie) Replace (or add) a cookie.voidreset()voidvoidvoidvoidsendError(int sc) voidSend an error response.voidSends a 102-Processing response.voidsendRedirect(int code, String location) Sends a response with one of the 300 series redirection codes.voidsendRedirect(int code, String location, boolean consumeAll) Sends a response with a given redirection code.voidsendRedirect(String location) voidsendRedirect(String location, boolean consumeAll) Sends a response with a HTTP version appropriate 30x redirection.voidsetBufferSize(int size) voidsetCharacterEncoding(String encoding) private voidsetCharacterEncoding(String encoding, Response.EncodingFrom from) voidsetContentLength(int len) voidsetContentLengthLong(long length) voidsetContentType(String contentType) voidsetDateHeader(String name, long date) private voidsetErrorSent(boolean errorSent) voidvoidsetHeader(HttpHeader name, String value) voidsetIntHeader(String name, int value) voidvoidsetLongContentLength(long len) voidsetStatus(int sc) voidDeprecated.voidsetStatusWithReason(int sc, String sm) voidsetTrailers(Supplier<HttpFields> trailers) toString()static javax.servlet.http.HttpServletResponseunwrap(javax.servlet.ServletResponse servletResponse) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javax.servlet.http.HttpServletResponse
getTrailerFields, setTrailerFields
-
Field Details
-
LOG
-
__MIN_BUFFER_SIZE
private static final int __MIN_BUFFER_SIZE- See Also:
-
__EXPIRES_01JAN1970
-
NO_CONTENT_LENGTH
public static final int NO_CONTENT_LENGTH- See Also:
-
USE_KNOWN_CONTENT_LENGTH
public static final int USE_KNOWN_CONTENT_LENGTH- See Also:
-
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:
-
_channel
-
_fields
-
_errorSentAndIncludes
-
_out
-
_status
private int _status -
_reason
-
_locale
-
_mimeType
-
_characterEncoding
-
_encodingFrom
-
_contentType
-
_outputType
-
_writer
-
_contentLength
private long _contentLength -
_trailers
-
__localeOverride
-
__explicitCharset
-
-
Constructor Details
-
Response
-
-
Method Details
-
getHttpChannel
-
recycle
protected void recycle() -
getHttpOutput
-
reopen
public void reopen() -
errorClose
public void errorClose() -
isMutable
private boolean isMutable()- Returns:
- true if the response is mutable, ie not errorSent and not included
-
setErrorSent
private void setErrorSent(boolean errorSent) -
isIncluding
public boolean isIncluding() -
include
public void include() -
included
public void included() -
addCookie
-
checkSameSite
Check that samesite is set on the cookie. If not, use a context default value, if one has been set.- Parameters:
cookie- the cookie to check- Returns:
- either the original cookie, or a new one that has the samesit default set
-
replaceCookie
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:
addCookiein interfacejavax.servlet.http.HttpServletResponse
-
containsHeader
- Specified by:
containsHeaderin interfacejavax.servlet.http.HttpServletResponse
-
encodeURL
-
encodeRedirectURL
-
encodeUrl
Deprecated.- Specified by:
encodeUrlin interfacejavax.servlet.http.HttpServletResponse
-
encodeRedirectUrl
Deprecated.- Specified by:
encodeRedirectUrlin interfacejavax.servlet.http.HttpServletResponse
-
sendError
- Specified by:
sendErrorin interfacejavax.servlet.http.HttpServletResponse- Throws:
IOException
-
sendError
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:
sendErrorin interfacejavax.servlet.http.HttpServletResponse- Parameters:
code- The error codemessage- The message- Throws:
IOException- If an IO problem occurred sending the error response.
-
sendProcessing
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:
IOException- if unable to send the 102 response- See Also:
-
sendRedirect
Sends a response with one of the 300 series redirection codes.- Parameters:
code- the redirect status codelocation- the location to send inLocationheaders- Throws:
IOException- if unable to send the redirect
-
sendRedirect
Sends a response with a HTTP version appropriate 30x redirection.- Parameters:
location- the location to send inLocationheadersconsumeAll- 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:
IOException- if unable to send the redirect
-
sendRedirect
Sends a response with a given redirection code.- Parameters:
code- the redirect status codelocation- the location to send inLocationheadersconsumeAll- 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:
IOException- if unable to send the redirect
-
sendRedirect
- Specified by:
sendRedirectin interfacejavax.servlet.http.HttpServletResponse- Throws:
IOException
-
setDateHeader
- Specified by:
setDateHeaderin interfacejavax.servlet.http.HttpServletResponse
-
addDateHeader
- Specified by:
addDateHeaderin interfacejavax.servlet.http.HttpServletResponse
-
setHeader
-
setHeader
-
getHeaderNames
- Specified by:
getHeaderNamesin interfacejavax.servlet.http.HttpServletResponse
-
getHeader
-
getHeaders
- Specified by:
getHeadersin interfacejavax.servlet.http.HttpServletResponse
-
addHeader
-
setIntHeader
- Specified by:
setIntHeaderin interfacejavax.servlet.http.HttpServletResponse
-
addIntHeader
- Specified by:
addIntHeaderin interfacejavax.servlet.http.HttpServletResponse
-
setStatus
public void setStatus(int sc) - Specified by:
setStatusin interfacejavax.servlet.http.HttpServletResponse
-
setStatus
Deprecated.- Specified by:
setStatusin interfacejavax.servlet.http.HttpServletResponse
-
setStatusWithReason
-
getCharacterEncoding
- Specified by:
getCharacterEncodingin interfacejavax.servlet.ServletResponse
-
getContentType
- Specified by:
getContentTypein interfacejavax.servlet.ServletResponse
-
getOutputStream
- Specified by:
getOutputStreamin interfacejavax.servlet.ServletResponse- Throws:
IOException
-
isWriting
public boolean isWriting() -
isStreaming
public boolean isStreaming() -
isWritingOrStreaming
public boolean isWritingOrStreaming() -
getWriter
- Specified by:
getWriterin interfacejavax.servlet.ServletResponse- Throws:
IOException
-
setContentLength
public void setContentLength(int len) - Specified by:
setContentLengthin interfacejavax.servlet.ServletResponse
-
getContentLength
public long getContentLength() -
isAllContentWritten
public boolean isAllContentWritten(long written) -
isContentComplete
public boolean isContentComplete(long written) -
closeOutput
- Throws:
IOException
-
completeOutput
-
completeOutput
-
getLongContentLength
public long getLongContentLength() -
setLongContentLength
public void setLongContentLength(long len) -
setContentLengthLong
public void setContentLengthLong(long length) - Specified by:
setContentLengthLongin interfacejavax.servlet.ServletResponse
-
setCharacterEncoding
- Specified by:
setCharacterEncodingin interfacejavax.servlet.ServletResponse
-
setCharacterEncoding
-
setContentType
- Specified by:
setContentTypein interfacejavax.servlet.ServletResponse
-
setBufferSize
public void setBufferSize(int size) - Specified by:
setBufferSizein interfacejavax.servlet.ServletResponse
-
getBufferSize
public int getBufferSize()- Specified by:
getBufferSizein interfacejavax.servlet.ServletResponse
-
flushBuffer
- Specified by:
flushBufferin interfacejavax.servlet.ServletResponse- Throws:
IOException
-
reset
public void reset()- Specified by:
resetin interfacejavax.servlet.ServletResponse
-
resetContent
public void resetContent() -
resetForForward
public void resetForForward() -
resetBuffer
public void resetBuffer()- Specified by:
resetBufferin interfacejavax.servlet.ServletResponse
-
setTrailers
-
getTrailers
-
newResponseMetaData
-
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:
isCommittedin interfacejavax.servlet.ServletResponse
-
setLocale
- Specified by:
setLocalein interfacejavax.servlet.ServletResponse
-
getLocale
- Specified by:
getLocalein interfacejavax.servlet.ServletResponse
-
getStatus
public int getStatus()- Specified by:
getStatusin interfacejavax.servlet.http.HttpServletResponse
-
getReason
-
getHttpFields
-
getContentCount
public long getContentCount() -
toString
-
putHeaders
-
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)
-
closeOutput()