public interface ResourceRequest extends ClientDataRequest
ResourceRequest interface represents the request
send to the portlet for rendering resources.
It extends the ClientDataRequest interface and provides resource request
information to portlets.
The portlet container creates an ResourceRequest object and
passes it as argument to the portlet's serveResource method.
The ResourceRequest is provided with the current portlet mode, window state,
and render parameters that the portlet can access via the
PortletResourceRequest with getPortletMode and,
getWindowState, or one of the getParameter methods.
ResourceURLs cannot change the current portlet mode, window state or
render parameters. Parameters set on a resource URL are not render parameters
but parameters for serving this resource and will last only for only
this the current serveResource request.
If a parameter is set that has the same name as a render parameter that this
resource URL contains, the render parameter must be the last entry in the
parameter value array.
ClientDataRequest,
ResourceServingPortletPortletRequest.P3PUserInfos| Modifier and Type | Field and Description |
|---|---|
static String |
ETAG
This property is set by the container if the container
has a cached response for the given validation tag.
|
ACTION_PHASE, ACTION_SCOPE_ID, BASIC_AUTH, CCPP_PROFILE, CLIENT_CERT_AUTH, DIGEST_AUTH, EVENT_PHASE, FORM_AUTH, HEADER_PHASE, LIFECYCLE_PHASE, RENDER_HEADERS, RENDER_MARKUP, RENDER_PART, RENDER_PHASE, RESOURCE_PHASE, USER_INFO| Modifier and Type | Method and Description |
|---|---|
String |
getCacheability()
Returns the cache level of this resource request.
|
DispatcherType |
getDispatcherType()
Gets the dispatcher type of this request.
|
String |
getETag()
Returns the validation tag if the portlet container
has a cached response for this validation tag, or
null if no cached response exists. |
PortletAsyncContext |
getPortletAsyncContext()
Gets the
AsyncContext that was created or reinitialized by the most
recent invocation of startAsync() or
startAsync(ResourceRequest,ResourceResponse) on this request. |
PortletMode |
getPortletMode()
Returns
the current portlet mode of the portlet.
|
Map<String,String[]> |
getPrivateRenderParameterMap()
Deprecated.
As of version 3.0. Use
RenderState.getRenderParameters() instead. |
String |
getResourceID()
Returns the resource ID set on the ResourceURL or
null
if no resource ID was set on the URL. |
ResourceParameters |
getResourceParameters()
Gets the resource parameters set for this request.
|
String |
getResponseContentType()
Returns the portal preferred content type for the response.
|
Enumeration<String> |
getResponseContentTypes()
Gets a list of content types which the portal accepts for the response.
|
WindowState |
getWindowState()
Returns
the current window state of the portlet.
|
boolean |
isAsyncStarted()
Checks if this request has been put into asynchronous mode.
|
boolean |
isAsyncSupported()
Checks if this request supports asynchronous operation.
|
PortletAsyncContext |
startPortletAsync()
Puts this request into asynchronous mode and initializes the
AsyncContext
object. |
PortletAsyncContext |
startPortletAsync(ResourceRequest request,
ResourceResponse response)
Puts this request into asynchronous mode and initializes the
AsyncContext
object. |
getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getMethod, getPart, getParts, getPortletInputStream, getReader, setCharacterEncodinggetAttribute, getAttributeNames, getAuthType, getContextPath, getCookies, getLocale, getLocales, getParameter, getParameterMap, getParameterNames, getParameterValues, getPortalContext, getPortletContext, getPortletSession, getPortletSession, getPreferences, getPrivateParameterMap, getProperties, getProperty, getPropertyNames, getPublicParameterMap, getRemoteUser, getRequestedSessionId, getScheme, getServerName, getServerPort, getUserAgent, getUserPrincipal, getWindowID, isPortletModeAllowed, isRequestedSessionIdValid, isSecure, isUserInRole, isWindowStateAllowed, removeAttribute, setAttributegetRenderParametersstatic final String ETAG
getProperty method.
The value is "portlet.ETag ".
String getETag()
null if no cached response exists.
This call returns the same value as
ResourceRequest.getProperty(ResourceRequest.ETAG).
null if no cached response exists.String getResourceID()
null
if no resource ID was set on the URL.null
if no resource ID was set on the URL.@Deprecated Map<String,String[]> getPrivateRenderParameterMap()
RenderState.getRenderParameters() instead.Map of the private render parameters of this request.
Private parameters are not shared with other portlets or components.
The returned parameters are "x-www-form-urlencoded" decoded.
The parameters returned do not include the resource parameters that
the portlet may have set on the resource URL triggering this
serveResource call.
The values in the returned Map are from type
String array (String[]).
If no private parameters exist this method returns an empty Map.
Map containing private parameter names as
keys and private parameter values as map values, or an empty Map
if no private parameters exist. The keys in the parameter
map are of type String. The values in the parameter map are of type
String array (String[]).ResourceParameters getResourceParameters()
Resource parameters are additional portlet parameters added to the URL triggering the request that extend the state information provided by the render parameters.
PortletParameters provides a description of the parameter concept.
ResourceParameters object representing
the resource parametersPortletParameters,
MutableResourceParameters,
ResourceURLString getResponseContentType()
The returned content type should be based on the HTTP Accept header provided by the client.
getResponseContentType in interface PortletRequestEnumeration<String> getResponseContentTypes()
The returned content types should be based on the HTTP Accept header provided by the client.
getResponseContentTypes in interface PortletRequestString getCacheability()
Possible return values are:
ResourceURL.FULL, ResourceURL.PORTLET
or ResourceURL.PAGE.
PortletMode getPortletMode()
If called during a request where the cache level is set to
ResourceURL.FULL, the portlet mode will not
be available.
getPortletMode in interface RenderStateResourceURL.FULL.
PortletModeWindowState getWindowState()
If called during a request where the cache level is set to
ResourceURL.FULL, the window state will not
be available.
getWindowState in interface RenderStateResourceURL.FULL.
WindowStatePortletAsyncContext startPortletAsync() throws IllegalStateException
AsyncContext
object.
Calling this method will cause committal of the associated response to be delayed until
AsyncContext#complete is called on the returned AsyncContext,
or the asynchronous operation has timed out.
This method clears the list of AsyncListener instances (if any) that were
registered with the AsyncContext returned by the previous call to one of the
startAsync methods, after calling each AsyncListener at
its onStartAsync method.
Subsequent invocations of this method, or its overloaded variant, will return
the same AsyncContext instance, reinitialized as appropriate.
The AsyncContext object can be used as described by the servlet
specification. The ServletRequest and ServletResponse
objects obtained from the AsyncContext will provide functionality
appropriate for the portlet environment.
The original ResourceRequest and ResourceResponse objects
will be made available as request attributes on the code>ServletRequest object
obtained from the AsyncContext under the names
javax.portlet.request
and javax.portlet.response, respectively.
The PortletConfig object will be made available on the
ServletRequest under the name
javax.portlet.config.
The AsyncContext#dispatch() method will cause the portlet resource
method to be invoked with the ResourceRequest and ResourceResponse
objects available as attributes on the ServletRequest object obtained from
the AsyncContext.
In this case, the ResourceRequest#isAsyncStarted() method will return
false and the ResourceRequest#getDispatcherType() method
will return DispatcherType#ASYNC.
A portlet ResourceFilter that allocates resources and attaches them to the
ResourceRequest or that wraps the ResourceRequest or
ResourceResponse should not release resources in the outbound direction
if asynchronous mode has been started.
A portlet ResourceFilter can use the values provided by the
ResourceRequest#isAsyncStarted() and the
ResourceRequest#getDispatcherType() methods to determine when to
allocate and release resources.
IllegalStateException - if this request is within the scope of a filter or servlet that does not
support asynchronous operations (that is, isAsyncSupported() returns
false), or if this method is called again without any asynchronous
dispatch (resulting from one of the PortletAsyncContext#dispatch methods),
is called outside the scope of any such dispatch, or is called again
within the scope of the same dispatch, or if the response has
already been closedServletRequest.startAsync(),
AsyncContext,
isAsyncStarted(),
getDispatcherType(),
ResourceFilterPortletAsyncContext startPortletAsync(ResourceRequest request, ResourceResponse response) throws IllegalStateException
AsyncContext
object.
Calling this method will cause committal of the associated response to be delayed until
AsyncContext#complete is called on the returned AsyncContext,
or the asynchronous operation has timed out.
This method clears the list of AsyncListener instances (if any) that were
registered with the AsyncContext returned by the previous call to one of the
startAsync methods, after calling each AsyncListener at
its onStartAsync method.
The AsyncContext object can be used as described by the servlet
specification. The ServletRequest and ServletResponse
objects obtained from the AsyncContext will provide functionality
appropriate for the portlet environment.
The ResourceRequest and ResourceResponse objects
passed as arguments to this method
will be made available as request attributes on the code>ServletRequest object
obtained from the AsyncContext under the names
javax.portlet.request
and javax.portlet.response, respectively.
The PortletConfig object will be made available on the
ServletRequest under the name
javax.portlet.config.
Subsequent invocations of this method, or its zero-argument variant, will return
the same AsyncContext instance, reinitialized as appropriate.
If a call to this method is followed by a call to its zero-argument variant,
the specified (and possibly wrapped) ResourceRequest and
ResourceResponse objects will remain available
as request attributes on the ServletRequest object
obtained from the AsyncContext.
The AsyncContext#dispatch() method will cause the portlet resource
method to be invoked with the ResourceRequest and ResourceResponse
objects available as attributes on the ServletRequest object obtained from
the AsyncContext.
In this case, the ResourceRequest#isAsyncStarted() method will return
false and the ResourceRequest#getDispatcherType() method
will return DispatcherType#ASYNC.
A portlet ResourceFilter that allocates resources and attaches them to the
ResourceRequest or that wraps the ResourceRequest or
ResourceResponse should not release resources in the outbound direction
if asynchronous mode has been started.
A portlet ResourceFilter can use the values provided by the
ResourceRequest#isAsyncStarted() and the
ResourceRequest#getDispatcherType() methods to determine when to
allocate and release resources.
IllegalStateException - if this request is within the scope of a filter or servlet that does not
support asynchronous operations (that is, isAsyncSupported() returns
false), or if this method is called again without any asynchronous
dispatch (resulting from one of the PortletAsyncContext#dispatch methods),
is called outside the scope of any such dispatch, or is called again
within the scope of the same dispatch, or if the response has
already been closedServletRequest.startAsync(),
AsyncContext,
isAsyncStarted(),
getDispatcherType(),
ResourceFilterboolean isAsyncStarted()
A ResourceRequest is put into asynchronous mode by calling
startAsync() or startAsync(ResourceRequest,ResourceResponse)
on it.
This method returns false if this request was put into asynchronous mode,
but has since been dispatched using one of the AsyncContext#dispatch
methods or released from asynchronous mode via a call to AsyncContext#complete.
true if asynchronous mode has been startedstartPortletAsync(),
startPortletAsync(ResourceRequest, ResourceResponse)boolean isAsyncSupported()
Asynchronous operation is disabled for this request if this request is within the scope of a filter or servlet that has not been annotated or flagged in the portlet configuration as being able to support asynchronous handling.
true if this request supports asynchronous operationPortletAsyncContext getPortletAsyncContext()
AsyncContext that was created or reinitialized by the most
recent invocation of startAsync() or
startAsync(ResourceRequest,ResourceResponse) on this request.
AsyncContext (re)initialized by the most recent startAsync method invocationIllegalStateException - if this request is within the scope of a filter or servlet that does not
support asynchronous operations (that is, isAsyncSupported() returns
false), or if asynchronous processing has not yet been started.ServletRequest.startAsync(),
AsyncContextDispatcherType getDispatcherType()
The initial dispatcher type of a request is defined as DispatcherType.REQUEST.
The dispatcher type of a request dispatched via a RequestDispatcher
is given as DispatcherType.FORWARD or DispatcherType.INCLUDE,
while the dispatcher type of an asynchronous request dispatched via one of the
AsyncContext#dispatch methods is given as DispatcherType.ASYNC.
DispatcherTypeJava Portlet 3.0 API Specification. See the Copyright and License provided with this distribution. Use is subject to license terms.