Package jakarta.servlet.http
Class HttpServletResponseWrapper
- java.lang.Object
-
- jakarta.servlet.ServletResponseWrapper
-
- jakarta.servlet.http.HttpServletResponseWrapper
-
- All Implemented Interfaces:
HttpServletResponse
,ServletResponse
public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse
Provides a convenient implementation of the HttpServletResponse interface that can be subclassed by developers wishing to adapt the response from a Servlet. This class implements the Wrapper or Decorator pattern. Methods default to calling through to the wrapped response object.- Since:
- Servlet 2.3
- See Also:
HttpServletResponse
-
-
Field Summary
-
Fields inherited from interface jakarta.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 HttpServletResponseWrapper(HttpServletResponse response)
Constructs a response adaptor wrapping the given response.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addCookie(Cookie cookie)
The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.void
addDateHeader(java.lang.String name, long date)
The default behavior of this method is to call addDateHeader(String name, long date) on the wrapped response object.void
addHeader(java.lang.String name, java.lang.String value)
The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.void
addIntHeader(java.lang.String name, int value)
The default behavior of this method is to call addIntHeader(String name, int value) on the wrapped response object.boolean
containsHeader(java.lang.String name)
The default behavior of this method is to call containsHeader(String name) on the wrapped response object.java.lang.String
encodeRedirectUrl(java.lang.String url)
Deprecated.As of Version 3.0 of the Java Servlet APIjava.lang.String
encodeRedirectURL(java.lang.String url)
The default behavior of this method is to return encodeRedirectURL(String url) on the wrapped response object.java.lang.String
encodeUrl(java.lang.String url)
Deprecated.As of Version 3.0 of the Java Servlet APIjava.lang.String
encodeURL(java.lang.String url)
The default behavior of this method is to call encodeURL(String url) on the wrapped response object.java.lang.String
getHeader(java.lang.String name)
Return the value for the specified header, ornull
if this header has not been set.java.util.Collection<java.lang.String>
getHeaderNames()
Get the header names set for this HTTP response.java.util.Collection<java.lang.String>
getHeaders(java.lang.String name)
Return a Collection of all the header values associated with the specified header name.int
getStatus()
Get the HTTP status code for this Response.java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>
getTrailerFields()
Obtain the supplier of the trailer headers.void
sendError(int sc)
The default behavior of this method is to call sendError(int sc) on the wrapped response object.void
sendError(int sc, java.lang.String msg)
The default behavior of this method is to call sendError(int sc, String msg) on the wrapped response object.void
sendRedirect(java.lang.String location)
The default behavior of this method is to return sendRedirect(String location) on the wrapped response object.void
setDateHeader(java.lang.String name, long date)
The default behavior of this method is to call setDateHeader(String name, long date) on the wrapped response object.void
setHeader(java.lang.String name, java.lang.String value)
The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.void
setIntHeader(java.lang.String name, int value)
The default behavior of this method is to call setIntHeader(String name, int value) on the wrapped response object.void
setStatus(int sc)
The default behavior of this method is to call setStatus(int sc) on the wrapped response object.void
setStatus(int sc, java.lang.String sm)
Deprecated.As of Version 3.0 of the Java Servlet APIvoid
setTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> supplier)
Configure the supplier of the trailer headers.-
Methods inherited from class jakarta.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getResponse, getWriter, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponse
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jakarta.servlet.ServletResponse
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
-
-
-
-
Constructor Detail
-
HttpServletResponseWrapper
public HttpServletResponseWrapper(HttpServletResponse response)
Constructs a response adaptor wrapping the given response.- Parameters:
response
- The response to be wrapped- Throws:
java.lang.IllegalArgumentException
- if the response is null
-
-
Method Detail
-
addCookie
public void addCookie(Cookie cookie)
The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.- Specified by:
addCookie
in interfaceHttpServletResponse
- Parameters:
cookie
- the Cookie to return to the client
-
containsHeader
public boolean containsHeader(java.lang.String name)
The default behavior of this method is to call containsHeader(String name) on the wrapped response object.- Specified by:
containsHeader
in interfaceHttpServletResponse
- Parameters:
name
- the header name- Returns:
true
if the named response header has already been set;false
otherwise
-
encodeURL
public java.lang.String encodeURL(java.lang.String url)
The default behavior of this method is to call encodeURL(String url) on the wrapped response object.- Specified by:
encodeURL
in interfaceHttpServletResponse
- Parameters:
url
- the url to be encoded.- Returns:
- the encoded URL if encoding is needed; the unchanged URL otherwise.
-
encodeRedirectURL
public java.lang.String encodeRedirectURL(java.lang.String url)
The default behavior of this method is to return encodeRedirectURL(String url) on the wrapped response object.- Specified by:
encodeRedirectURL
in interfaceHttpServletResponse
- Parameters:
url
- the url to be encoded.- Returns:
- the encoded URL if encoding is needed; the unchanged URL otherwise.
- See Also:
HttpServletResponse.sendRedirect(java.lang.String)
,HttpServletResponse.encodeUrl(java.lang.String)
-
encodeUrl
@Deprecated public java.lang.String encodeUrl(java.lang.String url)
Deprecated.As of Version 3.0 of the Java Servlet APIThe default behavior of this method is to call encodeUrl(String url) on the wrapped response object.- Specified by:
encodeUrl
in interfaceHttpServletResponse
- Parameters:
url
- the url to be encoded.- Returns:
- the encoded URL if encoding is needed; the unchanged URL otherwise.
-
encodeRedirectUrl
@Deprecated public java.lang.String encodeRedirectUrl(java.lang.String url)
Deprecated.As of Version 3.0 of the Java Servlet APIThe default behavior of this method is to return encodeRedirectUrl(String url) on the wrapped response object.- Specified by:
encodeRedirectUrl
in interfaceHttpServletResponse
- Parameters:
url
- the url to be encoded.- Returns:
- the encoded URL if encoding is needed; the unchanged URL otherwise.
-
sendError
public void sendError(int sc, java.lang.String msg) throws java.io.IOException
The default behavior of this method is to call sendError(int sc, String msg) on the wrapped response object.- Specified by:
sendError
in interfaceHttpServletResponse
- Parameters:
sc
- the error status codemsg
- the descriptive message- Throws:
java.io.IOException
- If an input or output exception occurs
-
sendError
public void sendError(int sc) throws java.io.IOException
The default behavior of this method is to call sendError(int sc) on the wrapped response object.- Specified by:
sendError
in interfaceHttpServletResponse
- Parameters:
sc
- the error status code- Throws:
java.io.IOException
- If an input or output exception occurs
-
sendRedirect
public void sendRedirect(java.lang.String location) throws java.io.IOException
The default behavior of this method is to return sendRedirect(String location) on the wrapped response object.- Specified by:
sendRedirect
in interfaceHttpServletResponse
- Parameters:
location
- the redirect location URL- Throws:
java.io.IOException
- If an input or output exception occurs
-
setDateHeader
public void setDateHeader(java.lang.String name, long date)
The default behavior of this method is to call setDateHeader(String name, long date) on the wrapped response object.- Specified by:
setDateHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the header to setdate
- the assigned date value- See Also:
HttpServletResponse.containsHeader(java.lang.String)
,HttpServletResponse.addDateHeader(java.lang.String, long)
-
addDateHeader
public void addDateHeader(java.lang.String name, long date)
The default behavior of this method is to call addDateHeader(String name, long date) on the wrapped response object.- Specified by:
addDateHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the header to setdate
- the additional date value- See Also:
HttpServletResponse.setDateHeader(java.lang.String, long)
-
setHeader
public void setHeader(java.lang.String name, java.lang.String value)
The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.- Specified by:
setHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the headervalue
- the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)- See Also:
HttpServletResponse.containsHeader(java.lang.String)
,HttpServletResponse.addHeader(java.lang.String, java.lang.String)
-
addHeader
public void addHeader(java.lang.String name, java.lang.String value)
The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.- Specified by:
addHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the headervalue
- the additional header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)- See Also:
HttpServletResponse.setHeader(java.lang.String, java.lang.String)
-
setIntHeader
public void setIntHeader(java.lang.String name, int value)
The default behavior of this method is to call setIntHeader(String name, int value) on the wrapped response object.- Specified by:
setIntHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the headervalue
- the assigned integer value- See Also:
HttpServletResponse.containsHeader(java.lang.String)
,HttpServletResponse.addIntHeader(java.lang.String, int)
-
addIntHeader
public void addIntHeader(java.lang.String name, int value)
The default behavior of this method is to call addIntHeader(String name, int value) on the wrapped response object.- Specified by:
addIntHeader
in interfaceHttpServletResponse
- Parameters:
name
- the name of the headervalue
- the assigned integer value- See Also:
HttpServletResponse.setIntHeader(java.lang.String, int)
-
setStatus
public void setStatus(int sc)
The default behavior of this method is to call setStatus(int sc) on the wrapped response object.- Specified by:
setStatus
in interfaceHttpServletResponse
- Parameters:
sc
- the status code- See Also:
HttpServletResponse.sendError(int, java.lang.String)
-
setStatus
@Deprecated public void setStatus(int sc, java.lang.String sm)
Deprecated.As of Version 3.0 of the Java Servlet APIThe default behavior of this method is to call setStatus(int sc, String sm) on the wrapped response object.- Specified by:
setStatus
in interfaceHttpServletResponse
- Parameters:
sc
- the status codesm
- the status message
-
getStatus
public int getStatus()
Get the HTTP status code for this Response.The default implementation is to call
HttpServletResponse.getStatus()
on the wrappedHttpServletResponse
.- Specified by:
getStatus
in interfaceHttpServletResponse
- Returns:
- The HTTP status code for this Response
- Since:
- Servlet 3.0
-
getHeader
public java.lang.String getHeader(java.lang.String name)
Return the value for the specified header, ornull
if this header has not been set. If more than one value was added for this name, only the first is returned; useHttpServletResponse.getHeaders(String)
to retrieve all of them.The default implementation is to call
HttpServletResponse.getHeader(String)
on the wrappedHttpServletResponse
.- Specified by:
getHeader
in interfaceHttpServletResponse
- Parameters:
name
- Header name to look up- Returns:
- The first value for the specified header. This is the raw value so if multiple values are specified in the first header then they will be returned as a single header value .
- Since:
- Servlet 3.0
-
getHeaders
public java.util.Collection<java.lang.String> getHeaders(java.lang.String name)
Return a Collection of all the header values associated with the specified header name.The default implementation is to call
HttpServletResponse.getHeaders(String)
on the wrappedHttpServletResponse
.- Specified by:
getHeaders
in interfaceHttpServletResponse
- Parameters:
name
- Header name to look up- Returns:
- The values for the specified header. These are the raw values so if multiple values are specified in a single header that will be returned as a single header value.
- Since:
- Servlet 3.0
-
getHeaderNames
public java.util.Collection<java.lang.String> getHeaderNames()
Get the header names set for this HTTP response.The default implementation is to call
HttpServletResponse.getHeaderNames()
on the wrappedHttpServletResponse
.- Specified by:
getHeaderNames
in interfaceHttpServletResponse
- Returns:
- The header names set for this HTTP response.
- Since:
- Servlet 3.0
-
setTrailerFields
public void setTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> supplier)
Configure the supplier of the trailer headers. The supplier will be called in the scope of the thread that completes the response.
Trailers that don't meet the requirements of RFC 7230, section 4.1.2 will be ignored.
The default implementation is a NO-OP.The default implementation is to call
HttpServletResponse.setTrailerFields(Supplier)
on the wrappedHttpServletResponse
.- Specified by:
setTrailerFields
in interfaceHttpServletResponse
- Parameters:
supplier
- The supplier for the trailer headers- Since:
- Servlet 4.0
-
getTrailerFields
public java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> getTrailerFields()
Obtain the supplier of the trailer headers.
The default implementation returns null.The default implementation is to call
HttpServletResponse.getTrailerFields()
on the wrappedHttpServletResponse
.- Specified by:
getTrailerFields
in interfaceHttpServletResponse
- Returns:
- The supplier for the trailer headers
- Since:
- Servlet 4.0
-
-