Class CmsFlexResponse
- All Implemented Interfaces:
javax.servlet.http.HttpServletResponse
,javax.servlet.ServletResponse
This class wraps the standard HttpServletResponse so that it's output can be delivered to the CmsFlexCache.
- Since:
- 6.0.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final char
The cache delimiter char.protected static final org.apache.commons.logging.Log
The log object for this class.static final String
Prefix for permanent redirect targets.static final String
Static string to indicate a header is "set" in the header maps.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
ConstructorDescriptionCmsFlexResponse
(javax.servlet.http.HttpServletResponse res, CmsFlexController controller) Constructor for the CmsFlexResponse, this variation one is usually used to wrap responses for further include calls in OpenCms.CmsFlexResponse
(javax.servlet.http.HttpServletResponse res, CmsFlexController controller, boolean streaming, boolean isTopElement) Constructor for the CmsFlexResponse, this variation is usually used for the "top" response. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCookie
(javax.servlet.http.Cookie cookie) Method overloaded from the standard HttpServletRequest API.void
addDateHeader
(String name, long date) Method overload from the standard HttpServletRequest API.void
Method overload from the standard HttpServletRequest API.void
addIntHeader
(String name, int value) Method overload from the standard HttpServletRequest API.void
Adds an inclusion target to the list of include results.void
Returns the value of the encoding used for this response.Provides access to the header cache of the top wrapper.javax.servlet.ServletOutputStream
Method overload from the standard HttpServletRequest API.Method overload from the standard HttpServletRequest API.byte[]
Returns the bytes that have been written on the current writers output stream.boolean
This flag indicates if the response is suspended or not.boolean
Returnstrue
if this response has been constructed for the top level element of this request,false
if it was constructed for an included sub-element.static void
processHeaders
(Map<String, List<String>> headers, javax.servlet.http.HttpServletResponse res) Process the headers stored in the provided map and add them to the response.void
sendRedirect
(String location) Method overload from the standard HttpServletRequest API.void
sendRedirect
(String location, boolean permanent) Internal redirect method used to handle both temporary and permanent redirects.void
setContentType
(String type) Method overload from the standard HttpServletRequest API.void
setDateHeader
(String name, long date) Method overload from the standard HttpServletRequest API.void
Method overload from the standard HttpServletRequest API.void
setIntHeader
(String name, int value) Method overload from the standard HttpServletRequest API.void
setOnlyBuffering
(boolean value) Sets buffering status of the response.Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, setStatus, setStatus
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setLocale, setResponse
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setLocale
-
Field Details
-
FLEX_CACHE_DELIMITER
The cache delimiter char.- See Also:
-
PREFIX_PERMANENT_REDIRECT
Prefix for permanent redirect targets.- See Also:
-
SET_HEADER
Static string to indicate a header is "set" in the header maps.- See Also:
-
LOG
The log object for this class.
-
-
Constructor Details
-
CmsFlexResponse
Constructor for the CmsFlexResponse, this variation one is usually used to wrap responses for further include calls in OpenCms.- Parameters:
res
- the CmsFlexResponse to wrapcontroller
- the controller to use
-
CmsFlexResponse
public CmsFlexResponse(javax.servlet.http.HttpServletResponse res, CmsFlexController controller, boolean streaming, boolean isTopElement) Constructor for the CmsFlexResponse, this variation is usually used for the "top" response.- Parameters:
res
- the HttpServletResponse to wrapcontroller
- the controller to usestreaming
- indicates if streaming should be enabled or notisTopElement
- indicates if this is the top element of an include cascade
-
-
Method Details
-
processHeaders
public static void processHeaders(Map<String, List<String>> headers, javax.servlet.http.HttpServletResponse res) Process the headers stored in the provided map and add them to the response.- Parameters:
headers
- the headers to addres
- the response to add the headers to
-
addCookie
Method overloaded from the standard HttpServletRequest API.Cookies must be set directly as a header, otherwise they might not be set in the super class.
- Specified by:
addCookie
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
addCookie
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponseWrapper.addCookie(javax.servlet.http.Cookie)
-
addDateHeader
Method overload from the standard HttpServletRequest API.- Specified by:
addDateHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
addDateHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.addDateHeader(java.lang.String, long)
-
addHeader
Method overload from the standard HttpServletRequest API.- Specified by:
addHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
addHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.addHeader(java.lang.String, java.lang.String)
-
addIntHeader
Method overload from the standard HttpServletRequest API.- Specified by:
addIntHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
addIntHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.addIntHeader(java.lang.String, int)
-
addToIncludeList
public void addToIncludeList(String target, Map<String, String[]> parameterMap, Map<String, Object> attributeMap) Adds an inclusion target to the list of include results.Should be used only in inclusion-scenarios like the JSP cms:include tag processing.
- Parameters:
target
- the include target name to addparameterMap
- the map of parameters given with the include commandattributeMap
- the map of attributes given with the include command
-
flushBuffer
- Specified by:
flushBuffer
in interfacejavax.servlet.ServletResponse
- Overrides:
flushBuffer
in classjavax.servlet.ServletResponseWrapper
- Throws:
IOException
- See Also:
-
ServletResponseWrapper.flushBuffer()
-
getEncoding
Returns the value of the encoding used for this response.- Returns:
- the value of the encoding used for this response
-
getHeaders
Provides access to the header cache of the top wrapper.- Returns:
- the Map of cached headers
-
getOutputStream
Method overload from the standard HttpServletRequest API.- Specified by:
getOutputStream
in interfacejavax.servlet.ServletResponse
- Overrides:
getOutputStream
in classjavax.servlet.ServletResponseWrapper
- Throws:
IOException
- See Also:
-
ServletResponse.getOutputStream()
-
getWriter
Method overload from the standard HttpServletRequest API.- Specified by:
getWriter
in interfacejavax.servlet.ServletResponse
- Overrides:
getWriter
in classjavax.servlet.ServletResponseWrapper
- Throws:
IOException
- See Also:
-
ServletResponse.getWriter()
-
getWriterBytes
Returns the bytes that have been written on the current writers output stream.- Returns:
- the bytes that have been written on the current writers output stream
-
isSuspended
This flag indicates if the response is suspended or not.A suspended response must not write further output to any stream or process a cache entry for itself.
Currently, a response is only suspended if it is redirected.
- Returns:
- true if the response is suspended, false otherwise
-
isTopElement
Returnstrue
if this response has been constructed for the top level element of this request,false
if it was constructed for an included sub-element.- Returns:
true
if this response has been constructed for the top level element of this request,false
if it was constructed for an included sub-element.
-
sendRedirect
Method overload from the standard HttpServletRequest API.- Specified by:
sendRedirect
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
sendRedirect
in classjavax.servlet.http.HttpServletResponseWrapper
- Throws:
IllegalArgumentException
- In case of a malformed location stringIOException
- See Also:
-
HttpServletResponse.sendRedirect(java.lang.String)
-
sendRedirect
Internal redirect method used to handle both temporary and permanent redirects.- Parameters:
location
- the redirect targetpermanent
- true for a permanent redirect, false for a temporary one- Throws:
IOException
- if IO operations on the response fail
-
setContentType
Method overload from the standard HttpServletRequest API.- Specified by:
setContentType
in interfacejavax.servlet.ServletResponse
- Overrides:
setContentType
in classjavax.servlet.ServletResponseWrapper
- See Also:
-
ServletResponse.setContentType(java.lang.String)
-
setDateHeader
Method overload from the standard HttpServletRequest API.- Specified by:
setDateHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
setDateHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.setDateHeader(java.lang.String, long)
-
setHeader
Method overload from the standard HttpServletRequest API.- Specified by:
setHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
setHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.setHeader(java.lang.String, java.lang.String)
-
setIntHeader
Method overload from the standard HttpServletRequest API.- Specified by:
setIntHeader
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
setIntHeader
in classjavax.servlet.http.HttpServletResponseWrapper
- See Also:
-
HttpServletResponse.setIntHeader(java.lang.String, int)
-
setOnlyBuffering
Sets buffering status of the response.This must be done before the first output is written. Buffering is needed to process elements that can not be written directly to the output stream because their sub - elements have to be processed separately. Which is so far true only for JSP pages.
If buffering is on, nothing is written to the output stream even if streaming for this response is enabled.
- Parameters:
value
- the value to set
-