public interface ResourceResponse extends MimeResponse
ResourceResponse
defines an object to assist a portlet
for rendering a resource.
The difference between the RenderResponse
is that for the
ResourceResponse
the output of this response is delivered
directly to the client without any additional markup added by the portal.
It is therefore allowed for the portlet to return binary content in this
response.
A portlet can set HTTP headers for the response via the setProperty or
addProperty call in the ResourceResponse
.
To be successfully transmitted back to the client, headers must be set
before the response is committed. Headers set after the response is
committed will be ignored by the portlet container.
The portlet container creates a ResourceResponse
object and
passes it as argument to the portlet's serveResource
method.
ResourceServingPortlet
,
MimeResponse
MimeResponse.Copy
Modifier and Type | Field and Description |
---|---|
static String |
HTTP_STATUS_CODE
Constant
for setting the HTTP status code via the
setProperty method. |
CACHE_SCOPE, ETAG, EXPIRATION_CACHE, MARKUP_HEAD_ELEMENT, NAMESPACED_RESPONSE, PRIVATE_SCOPE, PUBLIC_SCOPE, USE_CACHED_CONTENT
Modifier and Type | Method and Description |
---|---|
<T extends PortletURL & ActionURL> |
createActionURL()
Creates an action URL targeting the portlet.
|
ActionURL |
createActionURL(MimeResponse.Copy option)
Creates an action URL targeting the portlet.
|
<T extends PortletURL & RenderURL> |
createRenderURL()
Creates a render URL targeting the portlet.
|
RenderURL |
createRenderURL(MimeResponse.Copy option)
Creates a render URL targeting the portlet.
|
ResourceURL |
createResourceURL()
Creates a resource URL targeting the portlet.
|
int |
getStatus()
Gets the current HTTP status code for the response.
|
void |
setCharacterEncoding(String charset)
Sets the character encoding (MIME charset) of the response being
sent to the client, for example, to UTF-8.
|
void |
setContentLength(int len)
Sets
the length of the content body in the response.
|
void |
setContentLengthLong(long len)
Sets the length of the content body in the response.
|
void |
setLocale(Locale loc)
Sets
the locale of the response, setting the headers
(including the Content-Type's charset) as appropriate.
|
void |
setStatus(int sc)
Sets the HTTP status code for this request.
|
flushBuffer, getBufferSize, getCacheControl, getCharacterEncoding, getContentType, getLocale, getPortletOutputStream, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setContentType
addProperty, addProperty, addProperty, createElement, encodeURL, getNamespace, getProperty, getPropertyNames, getPropertyValues, setProperty
static final String HTTP_STATUS_CODE
setProperty
method.
Changing the HTTP status code
after the response has been committed has no effect.
void setLocale(Locale loc)
This method has no effect if it is called after the response has been committed.
loc
- the new locale of the responsevoid setCharacterEncoding(String charset)
setContentType(java.lang.String)
or
setLocale(java.util.Locale)
, this method overrides it. Calling
setContentType(java.lang.String)
with the String of
text/html
and calling this method with the String of
UTF-8
is equivalent with calling setContentType
with the String of text/html; charset=UTF-8
.
This method can be called repeatedly to change the character encoding. This method has no effect if it is called after getWriter has been called or after the response has been committed.
charset
- a String specifying only the character set defined by
IANA Character Sets (http://www.iana.org/assignments/character-sets)void setContentLength(int len)
This method has no effect if it is called after the response has been committed.
len
- an integer specifying the length of the content being returned; sets the Content-Length headervoid setStatus(int sc)
The status code should be a valid value as defined in
IETF
rfc2616 "Hypertext Transfer Protocol -- HTTP/1.1"
. The status code constants "SC_*" defined in
HttpServletResponse
may be used.
This method has no effect if it is called after the response has been committed.
sc
- an integer specifying the status code for this requestHttpServletResponse
,
HttpServletResponse.setStatus(int)
int getStatus()
HttpServletResponse
,
HttpServletResponse.getStatus()
void setContentLengthLong(long len)
This method has no effect if it is called after the response has been committed.
len
- a long
specifying the length of the content being returned; sets the Content-Length header<T extends PortletURL & RenderURL> T createRenderURL()
MimeResponse
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.
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 MimeResponse.createRenderURL(Copy)
with the parameter set to PUBLIC.
createRenderURL
in interface MimeResponse
IllegalStateException
- if the cacheability level of the resource URL
triggering this serveResource
call
is not PAGE
and thus does not allow
for creating render URLs.RenderURL createRenderURL(MimeResponse.Copy option)
MimeResponse
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 option
parameter.
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.
createRenderURL
in interface MimeResponse
option
- Specifies how current parameters are to be copied to the URLIllegalStateException
- if the cacheability level of the resource URL
triggering this serveResource
call
is not PAGE
and thus does not allow
for creating render URLs.MimeResponse.Copy
<T extends PortletURL & ActionURL> T createActionURL()
MimeResponse
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 MimeResponse.createRenderURL(Copy)
with the parameter set to PUBLIC.
createActionURL
in interface MimeResponse
IllegalStateException
- if the cacheability level of the resource URL
triggering this serveResource
call
is not PAGE
and thus does not allow
for creating action URLs.ActionURL createActionURL(MimeResponse.Copy option)
MimeResponse
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 option
parameter.
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.
createActionURL
in interface MimeResponse
option
- Specifies how current parameters are to be copied to the URLIllegalStateException
- if the cacheability level of the resource URL
triggering this serveResource
call
is not PAGE
and thus does not allow
for creating action URLs.MimeResponse.Copy
ResourceURL createResourceURL()
MimeResponse
If a request is triggered by the ResourceURL
, it results in a serve
resource request of the ResourceServingPortlet
interface.
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 PORTLET
or PAGE
, 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, PAGE
is the default.
ResourceServingPortlet
interface.
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, PAGE
is the default.
createResourceURL
in interface MimeResponse
IllegalStateException
- if the cacheability level of the resource URL
triggering this serveResource
call,
or one of the parent calls, have defined a stricter
cachability level.Java Portlet 3.0 API Specification. See the Copyright and License provided with this distribution. Use is subject to license terms.