Interface MimeResponse
-
- All Superinterfaces:
PortletResponse
- All Known Subinterfaces:
HeaderResponse,RenderResponse,ResourceResponse
- All Known Implementing Classes:
HeaderResponseWrapper,MimeResponseWrapper,RenderResponseWrapper,ResourceResponseWrapper
public interface MimeResponse extends PortletResponse
TheMimeResponsedefines the base interface to assist a portlet in returning MIME content.- Since:
- 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classMimeResponse.CopySpecifies processing when a URL is created.
-
Field Summary
Fields Modifier and Type Field Description static StringCACHE_SCOPEProperty to set the cache scope for this response using thesetPropertymethod intended to be used in forwarded or included servlets/JSPs.static StringETAGProperty to tell the portlet container the new ETag for this response intended to be used in forwarded or included servlets/JSPs.static StringEXPIRATION_CACHEProperty to set the expiration time in seconds for this response using thesetPropertymethod intended to be used in forwarded or included servlets/JSPs.static StringMARKUP_HEAD_ELEMENTProperty intended to be a hint to the portal application that the provided DOM element should be added to the markup head section of the response to the client.static StringNAMESPACED_RESPONSEProperty intended to be a hint to the portal application that the returned content is completely namespaced.static StringPRIVATE_SCOPEPrivate cache scope, indicating that the cache entry must not be shared across users.static StringPUBLIC_SCOPEPublic cache scope, indicating that the cache entry can be shared across users.static StringUSE_CACHED_CONTENTProperty to tell the portlet container to use the cached markup for the validation token provided in the request.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends PortletURL & ActionURL>
TcreateActionURL()Creates an action URL targeting the portlet.ActionURLcreateActionURL(MimeResponse.Copy option)Creates an action URL targeting the portlet.<T extends PortletURL & RenderURL>
TcreateRenderURL()Creates a render URL targeting the portlet.RenderURLcreateRenderURL(MimeResponse.Copy option)Creates a render URL targeting the portlet.ResourceURLcreateResourceURL()Creates a resource URL targeting the portlet.voidflushBuffer()Forces any content in the buffer to be written to the underlying output stream.intgetBufferSize()Returns the actual buffer size used for the response.CacheControlgetCacheControl()Returns the cache control object allowing to set specific cache settings valid for the markup returned in this response.StringgetCharacterEncoding()Returns the name of the charset used for the MIME body sent in this response.StringgetContentType()Returns the MIME type that can be used to contribute markup to the render response.LocalegetLocale()Returns the locale assigned to the response.OutputStreamgetPortletOutputStream()Returns aOutputStreamsuitable for writing binary data in the response.PrintWritergetWriter()Returns a PrintWriter object that can send character text to the portal.booleanisCommitted()Returns a boolean indicating if the response has been committed.voidreset()Clears any data that exists in the buffer as well as the properties set.voidresetBuffer()Clears the content of the underlying buffer in the response without clearing properties set.voidsetBufferSize(int size)Sets the preferred buffer size for the body of the response.voidsetContentType(String type)Sets the MIME type for the response.-
Methods inherited from interface jakarta.portlet.PortletResponse
addProperty, addProperty, addProperty, createElement, encodeURL, getNamespace, getProperty, getPropertyNames, getPropertyValues, setProperty
-
-
-
-
Field Detail
-
EXPIRATION_CACHE
static final String EXPIRATION_CACHE
Property to set the expiration time in seconds for this response using thesetPropertymethod intended to be used in forwarded or included servlets/JSPs.If the expiration value is set to
0, caching is disabled for this portlet; if the value is set to-1, the cache does not expire.A default can be defined in the portlet deployment descriptor with the
expiration-cachetag, otherwise it is0.Non-integer values are treated as
0.The value is
"portlet.expiration-cache".- See Also:
CacheControl, Constant Field Values
-
CACHE_SCOPE
static final String CACHE_SCOPE
Property to set the cache scope for this response using thesetPropertymethod intended to be used in forwarded or included servlets/JSPs.Predefined cache scopes are:
PUBLIC_SCOPEandPRIVATE_SCOPE.A default can be defined in the portlet deployment descriptor with the
cache-scopetag, otherwise it isPRIVATE_SCOPE.Values that are not either
PUBLIC_SCOPEorPRIVATE_SCOPEare treated asPRIVATE_SCOPE.The value is
"portlet.cache-scope".- Since:
- 2.0
- See Also:
CacheControl, Constant Field Values
-
PUBLIC_SCOPE
static final String PUBLIC_SCOPE
Public cache scope, indicating that the cache entry can be shared across users. The value is"portlet.public-scope".- Since:
- 2.0
- See Also:
- Constant Field Values
-
PRIVATE_SCOPE
static final String PRIVATE_SCOPE
Private cache scope, indicating that the cache entry must not be shared across users. The value is"portlet.private-scope".- Since:
- 2.0
- See Also:
- Constant Field Values
-
ETAG
static final String ETAG
Property to tell the portlet container the new ETag for this response intended to be used in forwarded or included servlets/JSPs.This property needs to be set using the
setPropertymethod.The value is
"portlet.ETag ".- Since:
- 2.0
- See Also:
CacheControl, Constant Field Values
-
USE_CACHED_CONTENT
static final String USE_CACHED_CONTENT
Property to tell the portlet container to use the cached markup for the validation token provided in the request. This property needs to be set using thesetPropertymethod with a non-null value and is intended to be used in forwarded or included servlets/JSPs. The value itself is not evaluated.The value is
"portlet.use-cached-content ".- Since:
- 2.0
- See Also:
CacheControl, Constant Field Values
-
NAMESPACED_RESPONSE
static final String NAMESPACED_RESPONSE
Property intended to be a hint to the portal application that the returned content is completely namespaced. This includes all markup id elements, form fields, etc. One example where this is might be used is for portal applications that are form-based and thus need to re-write any forms included in the portlet markup.This property needs to be set using the
setPropertymethod with a non-null value. The value itself is not evaluated.The value is
"X-JAKARTA-PORTLET-NAMESPACED-RESPONSE".- Since:
- 2.0
- See Also:
- Constant Field Values
-
MARKUP_HEAD_ELEMENT
static final String MARKUP_HEAD_ELEMENT
Property intended to be a hint to the portal application that the provided DOM element should be added to the markup head section of the response to the client.Support for this property is optional and the portlet can verify if the calling portal supports this property via the
MARKUP_HEAD_ELEMENT_SUPPORTproperty on thePortalContext.Even if the calling portal support this property delivery of the DOM element to the client cannot be guaranteed, e.g. due to possible security rules of the portal application or elements that conflict with the response of other portlets.
This property needs to be set using the
setProperty(String key,org.w3c.dom.Element element)method.The value is
"jakarta.portlet.markup.head.element".- Since:
- 2.0
- See Also:
- Constant Field Values
-
-
Method Detail
-
getContentType
String getContentType()
Returns the MIME type that can be used to contribute markup to the render response.If no content type was set previously using the
setContentType(java.lang.String)method this method returnsnull.- Returns:
- the MIME type of the response, or
nullif no content type is set - See Also:
setContentType(java.lang.String)
-
setContentType
void setContentType(String type)
Sets the MIME type for the response. The portlet should set the content type before callinggetWriter()orgetPortletOutputStream(). If the content type is not set using this method, the preferred content type as returned byPortletRequest.getResponseContentType()is used.Calling
setContentTypeaftergetWriterorgetOutputStreamdoes not change the content type.- Parameters:
type- the content MIME type- Throws:
IllegalArgumentException- if the content type is invalid.- See Also:
PortletRequest.getResponseContentTypes(),getContentType()
-
getCharacterEncoding
String getCharacterEncoding()
Returns the name of the charset used for the MIME body sent in this response.See RFC 2047 for more information about character encoding and MIME.
- Returns:
- a
Stringspecifying the name of the charset, for example,ISO-8859-1
-
getWriter
PrintWriter getWriter() throws IOException
Returns a PrintWriter object that can send character text to the portal.Before calling this method the content type of the render response should be set using the
setContentType(java.lang.String)method.Either this method or
getPortletOutputStream()may be called to write the body, not both.- Returns:
- a
PrintWriterobject that can return character data to the portal - Throws:
IOException- if an input or output exception occurredIllegalStateException- if thegetPortletOutputStreammethod has been called on this response.- See Also:
setContentType(java.lang.String),getPortletOutputStream()
-
getLocale
Locale getLocale()
Returns the locale assigned to the response.- Returns:
- Locale of this response
-
setBufferSize
void setBufferSize(int size)
Sets the preferred buffer size for the body of the response. The portlet container will use a buffer at least as large as the size requested.This method must be called before any response body content is written; if content has been written, or the portlet container does not support buffering, this method may throw an
IllegalStateException.- Parameters:
size- the preferred buffer size- Throws:
IllegalStateException- if this method is called after content has been written, or the portlet container does not support buffering- See Also:
getBufferSize(),flushBuffer(),isCommitted(),reset()
-
getBufferSize
int getBufferSize()
Returns the actual buffer size used for the response. If no buffering is used, this method returns 0.- Returns:
- the actual buffer size used
- See Also:
setBufferSize(int),flushBuffer(),isCommitted(),reset()
-
flushBuffer
void flushBuffer() throws IOExceptionForces any content in the buffer to be written to the underlying output stream. A call to this method automatically commits the response.- Throws:
IOException- if an error occurred when writing the output- See Also:
setBufferSize(int),getBufferSize(),isCommitted(),reset()
-
resetBuffer
void resetBuffer()
Clears the content of the underlying buffer in the response without clearing properties set. If the response has been committed, this method throws anIllegalStateException.- Throws:
IllegalStateException- if this method is called after response is committed- See Also:
setBufferSize(int),getBufferSize(),isCommitted(),reset()
-
isCommitted
boolean isCommitted()
Returns a boolean indicating if the response has been committed.- Returns:
- a boolean indicating if the response has been committed
- See Also:
setBufferSize(int),getBufferSize(),flushBuffer(),reset()
-
reset
void reset()
Clears any data that exists in the buffer as well as the properties set. If the response has been committed, this method throws anIllegalStateException.- Throws:
IllegalStateException- if the response has already been committed- See Also:
setBufferSize(int),getBufferSize(),flushBuffer(),isCommitted()
-
getPortletOutputStream
OutputStream getPortletOutputStream() throws IOException
Returns aOutputStreamsuitable for writing binary data in the response. The portlet container does not encode the binary data.Before calling this method the content type of the render response must be set using the
setContentType(java.lang.String)method.Calling
flush()on the OutputStream commits the response.Either this method or
getWriter()may be called to write the body, not both.- Returns:
- a
OutputStreamfor writing binary data - Throws:
IllegalStateException- if thegetWritermethod has been called on this response.IOException- if an input or output exception occurred- See Also:
setContentType(java.lang.String),getWriter()
-
createRenderURL
<T extends PortletURL & RenderURL> T createRenderURL()
Creates a render URL targeting the portlet. Render URLs cause idempotent requests that move the portlet to a new view state, for example, to view a different page of data.If a request is triggered by the URL, it results in a render request.
The returned render URL will not contain any private render parameters from the current request.
The created URL will per default not contain any parameters of the current render request.
The returned URL can be further extended by adding portlet-specific render parameters, portlet mode, and window state. If no portlet mode, window state or security modifier is set on the URL, the values from the current render or resource request are preserved.
Public render parameters do not need to be explicitly added to the returned render URL, unless the public render parameter value is to be changed. Any public render parameters associated with the portlet will automatically be available during render request processing resulting from activation of the URL.
If a public render parameter value is set or removed on a render URL, then the public render parameter will be set to the new value or removed when the URL is activated.
The effect of this method is the same as calling
createRenderURL(Copy)with the parameter set to PUBLIC.- Type Parameters:
T- the type of the URL, which must be a subtype of bothPortletURLandRenderURL- Returns:
- a portlet render URL
-
createRenderURL
RenderURL createRenderURL(MimeResponse.Copy option)
Creates a render URL targeting the portlet. Render URLs cause idempotent requests that move the portlet to a new view state, for example, to view a different page of data.If a request is triggered by the URL, it results in a render request.
The new render URL will contain render parameters from the current request as specified by the
optionparameter.- NONE
- All public and private parameters are removed from the URL.
- ALL
- The public and private parameters governing the current request are added to the URL.
- PUBLIC
- Only public parameters governing the current request are added to the URL.
If a public render parameter value is set or removed on a render URL, then the public render parameter will be set to the new value or removed when the URL is activated.
- Parameters:
option- Specifies how current parameters are to be copied to the URL- Returns:
- a portlet render URL
- Since:
- 3.0
- See Also:
MimeResponse.Copy
-
createActionURL
<T extends PortletURL & ActionURL> T createActionURL()
Creates an action URL targeting the portlet. Action URLs are used to create forms or links that, when triggered, update the render state in a non-idempotent manner.If a request is triggered by the URL, it results in an action request.
The returned action URL will not contain any private render parameters per default not contain any parameters from the current request.
The returned URL can be further extended by adding portlet-specific action parameters, portlet mode, and window state. If no additional portlet mode, window state or security modifier is set on the URL, the values from the current render or resource request are preserved.
Public render parameters do not need to be explicitly added to the returned action URL, unless the public render parameter value is to be changed. Any public render parameters associated with the portlet will automatically be available during action request processing resulting from activation of the URL.
If a public render parameter value is set or removed on an action URL, then the public render parameter will be set to the new value or removed when the URL is activated.
The effect of this method is the same as calling
createRenderURL(Copy)with the parameter set to PUBLIC.- Type Parameters:
T- the type of the URL, which must be a subtype of bothPortletURLandActionURL- Returns:
- a portlet action URL
-
createActionURL
ActionURL createActionURL(MimeResponse.Copy option)
Creates an action URL targeting the portlet. Action URLs are used to create forms or links that, when triggered, update the render state in a non-idempotent manner.If a request is triggered by the URL, it results in an action request.
The new action URL will contain render parameters from the current request as specified by the
optionparameter.- NONE
- All public and private parameters are removed from the URL.
- ALL
- The public and private parameters governing the current request are added to the URL.
- PUBLIC
- Only public parameters governing the current request are added to the URL.
The returned URL can be further extended by adding action parameters, portlet mode, and window state. If no additional portlet mode, window state or security modifier is set on the URL, the values from the current render or resource request are preserved.
If a public render parameter value is set or removed on an action URL, then the public render parameter will be set to the new value or removed when the URL is activated.
- Parameters:
option- Specifies how current parameters are to be copied to the URL- Returns:
- a portlet action URL
- Since:
- 3.0
- See Also:
MimeResponse.Copy
-
createResourceURL
ResourceURL createResourceURL()
Creates a resource URL targeting the portlet. Resource URLs are used to trigger requests for content that applies to the current portlet view state.If a request is triggered by the
ResourceURL, it results in a serve resource request of theResourceServingPortletinterface.The security settings can be changed for the URL. If the security settings are not explicitly set, the values governing the current request are preserved. The current render parameters, portlet mode, and window state are preserved depending on the cacheability setting for the returned resource URL.
If cacheability is set to
PORTLETorPAGE, the values of the render parameters, portlet mode, and window state are preserved. Otherwise, they will not be preserved.If allowed by the cacheability setting, public and private render parameters are added to the URL with their current values. The render parameter values cannot be changed on the URL.
The URL can be further extended by adding portlet-specific resource parameters.
The URL will contain the current cacheability setting of the parent resource by default. If no parent resource is available,
PAGEis the default.If a request is triggered by the PortletURL, it results in a serve resource request of theResourceServingPortletinterface.The returned URL can be further extended by adding portlet-specific parameters .
The created URL will by default contain the current cacheability setting of the parent resource. If no parent resource is available,
PAGEis the default.- Returns:
- a portlet resource URL
- Since:
- 2.0
-
getCacheControl
CacheControl getCacheControl()
Returns the cache control object allowing to set specific cache settings valid for the markup returned in this response.- Returns:
- Cache control for the current response.
- Since:
- 2.0
-
-