Interface MimeResponse
-
- All Superinterfaces:
PortletResponse
- All Known Subinterfaces:
RenderResponse
,ResourceResponse
- All Known Implementing Classes:
RenderResponseWrapper
,ResourceResponseWrapper
public interface MimeResponse extends PortletResponse
TheMimeResponse
defines the base interface to assist a portlet in returning MIME content.- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CACHE_SCOPE
Property to set the cache scope for this response using thesetProperty
method intended to be used in forwarded or included servlets/JSPs.static java.lang.String
ETAG
Property to tell the portlet container the new ETag for this response intended to be used in forwarded or included servlets/JSPs.static java.lang.String
EXPIRATION_CACHE
Property to set the expiration time in seconds for this response using thesetProperty
method intended to be used in forwarded or included servlets/JSPs.static java.lang.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.static java.lang.String
NAMESPACED_RESPONSE
Property intended to be a hint to the portal application that the returned content is completely namespaced.static java.lang.String
PRIVATE_SCOPE
Private cache scope, indicating that the cache entry must not be shared across users.static java.lang.String
PUBLIC_SCOPE
Public cache scope, indicating that the cache entry can be shared across users.static java.lang.String
USE_CACHED_CONTENT
Property 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 PortletURL
createActionURL()
Creates a portlet URL targeting the portlet.PortletURL
createRenderURL()
Creates a portlet URL targeting the portlet.ResourceURL
createResourceURL()
Creates a portlet URL targeting the portlet.void
flushBuffer()
Forces any content in the buffer to be written to the underlying output stream.int
getBufferSize()
Returns the actual buffer size used for the response.CacheControl
getCacheControl()
Returns the cache control object allowing to set specific cache settings valid for the markup returned in this response.java.lang.String
getCharacterEncoding()
Returns the name of the charset used for the MIME body sent in this response.java.lang.String
getContentType()
Returns the MIME type that can be used to contribute markup to the render response.java.util.Locale
getLocale()
Returns the locale assigned to the response.java.io.OutputStream
getPortletOutputStream()
Returns aOutputStream
suitable for writing binary data in the response.java.io.PrintWriter
getWriter()
Returns a PrintWriter object that can send character text to the portal.boolean
isCommitted()
Returns a boolean indicating if the response has been committed.void
reset()
Clears any data that exists in the buffer as well as the properties set.void
resetBuffer()
Clears the content of the underlying buffer in the response without clearing properties set.void
setBufferSize(int size)
Sets the preferred buffer size for the body of the response.void
setContentType(java.lang.String type)
Sets the MIME type for the response.-
Methods inherited from interface javax.portlet.PortletResponse
addProperty, addProperty, addProperty, createElement, encodeURL, getNamespace, setProperty
-
-
-
-
Field Detail
-
EXPIRATION_CACHE
static final java.lang.String EXPIRATION_CACHE
Property to set the expiration time in seconds for this response using thesetProperty
method 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-cache
tag, otherwise it is
0
.Non-integer values are treated as
0
.The value is
"portlet.expiration-cache"
.- See Also:
CacheControl
, Constant Field Values
-
CACHE_SCOPE
static final java.lang.String CACHE_SCOPE
Property to set the cache scope for this response using thesetProperty
method intended to be used in forwarded or included servlets/JSPs.Predefined cache scopes are:
PUBLIC_SCOPE
andPRIVATE_SCOPE
.A default can be defined in the portlet deployment descriptor with the
cache-scope
tag, otherwise it is
PRIVATE_SCOPE
.Values that are not either
PUBLIC_SCOPE
orPRIVATE_SCOPE
are treated asPRIVATE_SCOPE
.The value is
"portlet.cache-scope"
.- Since:
- 2.0
- See Also:
CacheControl
, Constant Field Values
-
PUBLIC_SCOPE
static final java.lang.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 java.lang.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 java.lang.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
setProperty
method.The value is
"portlet.ETag "
.- Since:
- 2.0
- See Also:
CacheControl
, Constant Field Values
-
USE_CACHED_CONTENT
static final java.lang.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 thesetProperty
method 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 java.lang.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
setProperty
method with a non-null value. The value itself is not evaluated.The value is
"X-JAVAX-PORTLET-NAMESPACED-RESPONSE"
.- Since:
- 2.0
- See Also:
- Constant Field Values
-
MARKUP_HEAD_ELEMENT
static final java.lang.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_SUPPORT
property 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
"javax.portlet.markup.head.element"
.- Since:
- 2.0
- See Also:
- Constant Field Values
-
-
Method Detail
-
getContentType
java.lang.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
null
if no content type is set - See Also:
setContentType(java.lang.String)
-
setContentType
void setContentType(java.lang.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 thePortletRequest.getResponseContentType()
value is set as response content type by the portlet container.Calling
setContentType
aftergetWriter
orgetOutputStream
does not change the content type.- Parameters:
type
- the content MIME type- See Also:
PortletRequest.getResponseContentTypes()
,getContentType()
-
getCharacterEncoding
java.lang.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
String
specifying the name of the charset, for example,ISO-8859-1
-
getWriter
java.io.PrintWriter getWriter() throws java.io.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
PrintWriter
object that can return character data to the portal - Throws:
java.io.IOException
- if an input or output exception occurredjava.lang.IllegalStateException
- if thegetPortletOutputStream
method has been called on this response.- See Also:
setContentType(java.lang.String)
,getPortletOutputStream()
-
getLocale
java.util.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:
java.lang.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 java.io.IOException
Forces any content in the buffer to be written to the underlying output stream. A call to this method automatically commits the response.- Throws:
java.io.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:
java.lang.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:
java.lang.IllegalStateException
- if the response has already been committed- See Also:
setBufferSize(int)
,getBufferSize()
,flushBuffer()
,isCommitted()
-
getPortletOutputStream
java.io.OutputStream getPortletOutputStream() throws java.io.IOException
Returns aOutputStream
suitable 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
OutputStream
for writing binary data - Throws:
java.lang.IllegalStateException
- if thegetWriter
method has been called on this response.java.io.IOException
- if an input or output exception occurred- See Also:
setContentType(java.lang.String)
,getWriter()
-
createRenderURL
PortletURL createRenderURL()
Creates a portlet URL targeting the portlet. If no portlet mode, window state or security modifier is set in the PortletURL the current values are preserved. If a request is triggered by the PortletURL, it results in a render request.The returned URL can be further extended by adding portlet-specific parameters and portlet modes and window states.
The created URL will per default not contain any parameters of the current render request.
- Returns:
- a portlet render URL
-
createActionURL
PortletURL createActionURL()
Creates a portlet URL targeting the portlet. If no portlet mode, window state or security modifier is set in the PortletURL the current values are preserved. If a request is triggered by the PortletURL, it results in an action request.The returned URL can be further extended by adding portlet-specific parameters and portlet modes and window states.
The created URL will per default not contain any parameters of the current render request.
- Returns:
- a portlet action URL
-
createResourceURL
ResourceURL createResourceURL()
Creates a portlet URL targeting the portlet. If no security modifier is set in the PortletURL the current values are preserved. The current render parameters, portlet mode and window state are preserved.If a request is triggered by the PortletURL, it results in a serve resource request of the
ResourceServingPortlet
interface.The returned URL can be further extended by adding portlet-specific parameters .
The created URL will per default contain the current cacheability setting of the parent resource. If no parent resource is available,
PAGE
is 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
-
-