javax.faces.context
Class ExternalContext

java.lang.Object
  extended by javax.faces.context.ExternalContext

public abstract class ExternalContext
extends java.lang.Object

This class allows the Faces API to be unaware of the nature of its containing application environment. In particular, this class allows JavaServer Faces based appications to run in either a Servlet or a Portlet environment.

In the method descriptions below, paragraphs starting with Servlet: and Portlet: denote behavior that is specific to that particular environment.


Field Summary
static java.lang.String BASIC_AUTH
          String identifier for BASIC authentication.
static java.lang.String CLIENT_CERT_AUTH
          String identifier for CLIENT_CERT authentication.
static java.lang.String DIGEST_AUTH
          String identifier for DIGEST authentication.
static java.lang.String FORM_AUTH
          String identifier for FORM authentication.
 
Constructor Summary
ExternalContext()
           
 
Method Summary
abstract  void dispatch(java.lang.String path)
          Dispatch a request to the specified resource to create output for this response.
abstract  java.lang.String encodeActionURL(java.lang.String url)
          Return the input URL, after performing any rewriting needed to ensure that it will correctly identify an addressable action in the current application.
abstract  java.lang.String encodeNamespace(java.lang.String name)
          Return the specified name, after prefixing it with a namespace that ensures that it will be unique within the context of a particular page.
abstract  java.lang.String encodeResourceURL(java.lang.String url)
          Return the input URL, after performing any rewriting needed to ensure that it will correctly identify an addressable resource in the current application.
abstract  java.util.Map<java.lang.String,java.lang.Object> getApplicationMap()
          Return a mutable Map representing the application scope attributes for the current application.
abstract  java.lang.String getAuthType()
          Return the name of the authentication scheme used to authenticate the current user, if any; otherwise, return null.
abstract  java.lang.Object getContext()
          Return the application environment object instance for the current appication.
abstract  java.lang.String getInitParameter(java.lang.String name)
          Return the value of the specified application initialization parameter (if any).
abstract  java.util.Map getInitParameterMap()
          Return an immutable Map whose keys are the set of application initialization parameter names configured for this application, and whose values are the corresponding parameter values.
abstract  java.lang.String getRemoteUser()
          Return the login name of the user making the current request if any; otherwise, return null.
abstract  java.lang.Object getRequest()
          Return the environment-specific object instance for the current request.
 java.lang.String getRequestCharacterEncoding()
           Return the character encoding currently being used to interpret this request.
 java.lang.String getRequestContentType()
          Return the MIME Content-Type for this request.
abstract  java.lang.String getRequestContextPath()
          Return the portion of the request URI that identifies the web application context for this request.
abstract  java.util.Map<java.lang.String,java.lang.Object> getRequestCookieMap()
          Return an immutable Map whose keys are the set of cookie names included in the current request, and whose values (of type javax.servlet.http.Cookie) are the first (or only) cookie for each cookie name returned by the underlying request.
abstract  java.util.Map<java.lang.String,java.lang.String> getRequestHeaderMap()
          Return an immutable Map whose keys are the set of request header names included in the current request, and whose values (of type String) are the first (or only) value for each header name returned by the underlying request.
abstract  java.util.Map<java.lang.String,java.lang.String[]> getRequestHeaderValuesMap()
          Return an immutable Map whose keys are the set of request header names included in the current request, and whose values (of type String[]) are all of the value for each header name returned by the underlying request.
abstract  java.util.Locale getRequestLocale()
          Return the preferred Locale in which the client will accept content.
abstract  java.util.Iterator<java.util.Locale> getRequestLocales()
          Return an Iterator over the preferred Locales specified in the request, in decreasing order of preference.
abstract  java.util.Map<java.lang.String,java.lang.Object> getRequestMap()
          Return a mutable Map representing the request scope attributes for the current application.
abstract  java.util.Map<java.lang.String,java.lang.String> getRequestParameterMap()
          Return an immutable Map whose keys are the set of request parameters names included in the current request, and whose values (of type String) are the first (or only) value for each parameter name returned by the underlying request.
abstract  java.util.Iterator<java.lang.String> getRequestParameterNames()
          Return an Iterator over the names of all request parameters included in the current request.
abstract  java.util.Map<java.lang.String,java.lang.String[]> getRequestParameterValuesMap()
          Return an immutable Map whose keys are the set of request parameters names included in the current request, and whose values (of type String[]) are all of the values for each parameter name returned by the underlying request.
abstract  java.lang.String getRequestPathInfo()
          Return the extra path information (if any) included in the request URI; otherwise, return null.
abstract  java.lang.String getRequestServletPath()
          Return the servlet path information (if any) included in the request URI; otherwise, return null.
abstract  java.net.URL getResource(java.lang.String path)
          Return a URL for the application resource mapped to the specified path, if it exists; otherwise, return null.
abstract  java.io.InputStream getResourceAsStream(java.lang.String path)
          Return an InputStream for an application resource mapped to the specified path, if it exists; otherwise, return null.
abstract  java.util.Set<java.lang.String> getResourcePaths(java.lang.String path)
          Return the Set of resource paths for all application resources whose resource path starts with the specified argument.
abstract  java.lang.Object getResponse()
          Return the environment-specific object instance for the current response.
 java.lang.String getResponseCharacterEncoding()
          Returns the name of the character encoding (MIME charset) used for the body sent in this response.
 java.lang.String getResponseContentType()
          Return the MIME Content-Type for this response.
abstract  java.lang.Object getSession(boolean create)
          If the create parameter is true, create (if necessary) and return a session instance associated with the current request.
abstract  java.util.Map<java.lang.String,java.lang.Object> getSessionMap()
          Return a mutable Map representing the session scope attributes for the current application.
abstract  java.security.Principal getUserPrincipal()
          Return the Principal object containing the name of the current authenticated user, if any; otherwise, return null.
abstract  boolean isUserInRole(java.lang.String role)
          Return true if the currently authenticated user is included in the specified role.
abstract  void log(java.lang.String message)
          Log the specified message to the application object.
abstract  void log(java.lang.String message, java.lang.Throwable exception)
          Log the specified message and exception to the application object.
abstract  void redirect(java.lang.String url)
          Redirect a request to the specified URL, and cause the responseComplete() method to be called on the FacesContext instance for the current request.
 void setRequest(java.lang.Object request)
          Set the environment-specific request to be returned by subsequent calls to getRequest().
 void setRequestCharacterEncoding(java.lang.String encoding)
          Overrides the name of the character encoding used in the body of this request.
 void setResponse(java.lang.Object response)
          Set the environment-specific response to be returned by subsequent calls to getResponse().
 void setResponseCharacterEncoding(java.lang.String encoding)
          Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BASIC_AUTH

public static final java.lang.String BASIC_AUTH

String identifier for BASIC authentication.

See Also:
Constant Field Values

CLIENT_CERT_AUTH

public static final java.lang.String CLIENT_CERT_AUTH

String identifier for CLIENT_CERT authentication.

See Also:
Constant Field Values

DIGEST_AUTH

public static final java.lang.String DIGEST_AUTH

String identifier for DIGEST authentication.

See Also:
Constant Field Values

FORM_AUTH

public static final java.lang.String FORM_AUTH

String identifier for FORM authentication.

See Also:
Constant Field Values
Constructor Detail

ExternalContext

public ExternalContext()
Method Detail

dispatch

public abstract void dispatch(java.lang.String path)
                       throws java.io.IOException

Dispatch a request to the specified resource to create output for this response.

Servlet: This must be accomplished by calling the javax.servlet.ServletContext method getRequestDispatcher(path), and calling the forward() method on the resulting object.

Portlet: This must be accomplished by calling the javax.portlet.PortletContext method getRequestDispatcher(), and calling the include() method on the resulting object.

Parameters:
path - Context relative path to the specified resource, which must start with a slash ("/") character
Throws:
FacesException - thrown if a ServletException or PortletException occurs
java.lang.IllegalArgumentException - if no request dispatcher can be created for the specified path
java.lang.IllegalStateException - if this method is called in a portlet environment, and the current request is an ActionRequest instead of a RenderRequest
java.io.IOException - if an input/output error occurs
java.lang.NullPointerException - if path is null

encodeActionURL

public abstract java.lang.String encodeActionURL(java.lang.String url)

Return the input URL, after performing any rewriting needed to ensure that it will correctly identify an addressable action in the current application.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletResponse method encodeURL(url).

Portlet: This must be the value returned by the javax.portlet.PortletResponse method encodeURL(url).

Parameters:
url - The input URL to be encoded
Throws:
java.lang.NullPointerException - if url is null

encodeNamespace

public abstract java.lang.String encodeNamespace(java.lang.String name)

Return the specified name, after prefixing it with a namespace that ensures that it will be unique within the context of a particular page.

Servlet: The input value must be returned unchanged.

Portlet: The returned value must be the input value prefixed by the value returned by the javax.portlet.RenderResponse method getNamespace().

Parameters:
name - Name to be encoded
Throws:
java.lang.IllegalStateException - if this method is called in a portlet environment, and the current response is an ActionResponse instead of a RenderResponse
java.lang.NullPointerException - if name is null

encodeResourceURL

public abstract java.lang.String encodeResourceURL(java.lang.String url)

Return the input URL, after performing any rewriting needed to ensure that it will correctly identify an addressable resource in the current application.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletResponse method encodeURL(url).

Portlet: This must be the value returned by the javax.portlet.PortletResponse method encodeURL(url).

Parameters:
url - The input URL to be encoded
Throws:
java.lang.NullPointerException - if url is null

getApplicationMap

public abstract java.util.Map<java.lang.String,java.lang.Object> getApplicationMap()

Return a mutable Map representing the application scope attributes for the current application. The returned Map must implement the entire contract for a modifiable map as described in the JavaDocs for java.util.Map. Modifications made in the Map must cause the corresponding changes in the set of application scope attributes. Particularly the clear(), remove(), put(), putAll(), and get() operations must take the appropriate action on the underlying data structure.

For any of the Map methods that cause an element to be removed from the underlying data structure, the following action regarding managed-beans must be taken. If the element to be removed is a managed-bean, and it has one or more public no-argument void return methods annotated with javax.annotation.PreDestroy, each such method must be called before the element is removed from the underlying data structure. Elements that are not managed-beans, but do happen to have methods with that annotation must not have those methods called on removal. Any exception thrown by the PreDestroy annotated methods must by caught and not rethrown. The exception may be logged.

Servlet: This must be the set of attributes available via the javax.servlet.ServletContext methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute().

Portlet: This must be the set of attributes available via the javax.portlet.PortletContext methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute().


getAuthType

public abstract java.lang.String getAuthType()

Return the name of the authentication scheme used to authenticate the current user, if any; otherwise, return null. For standard authentication schemes, the returned value will match one of the following constants: BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, or FORM_AUTH.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getAuthType().

Portlet: This must be the value returned by the javax.portlet.http.PortletRequest method getAuthType().


getContext

public abstract java.lang.Object getContext()

Return the application environment object instance for the current appication.

Servlet: This must be the current application's javax.servlet.ServletContext instance.

Portlet: This must be the current application's javax.portlet.PortletContext instance.


getInitParameter

public abstract java.lang.String getInitParameter(java.lang.String name)

Return the value of the specified application initialization parameter (if any).

Servlet: This must be the result of the javax.servlet.ServletContext method getInitParameter(name).

Portlet: This must be the result of the javax.portlet.PortletContext method getInitParameter(name).

Parameters:
name - Name of the requested initialization parameter
Throws:
java.lang.NullPointerException - if name is null

getInitParameterMap

public abstract java.util.Map getInitParameterMap()

Return an immutable Map whose keys are the set of application initialization parameter names configured for this application, and whose values are the corresponding parameter values. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map.

Servlet: This result must be as if it were synthesized by calling the javax.servlet.ServletContext method getInitParameterNames, and putting each configured parameter name/value pair into the result.

Portlet: This result must be as if it were synthesized by calling the javax.portlet.PortletContext method getInitParameterNames, and putting each configured parameter name/value pair into the result.


getRemoteUser

public abstract java.lang.String getRemoteUser()

Return the login name of the user making the current request if any; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getRemoteUser().

Portlet: This must be the value returned by the javax.portlet.http.PortletRequest method getRemoteUser().


getRequest

public abstract java.lang.Object getRequest()

Return the environment-specific object instance for the current request.

Servlet: This must be the current request's javax.servlet.http.HttpServletRequest instance.

Portlet: This must be the current request's javax.portlet.PortletRequest instance, which will be either an ActionRequest or a RenderRequest depending upon when this method is called.


setRequest

public void setRequest(java.lang.Object request)

Set the environment-specific request to be returned by subsequent calls to getRequest(). This may be used to install a wrapper for the request.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

setRequestCharacterEncoding

public void setRequestCharacterEncoding(java.lang.String encoding)
                                 throws java.io.UnsupportedEncodingException

Overrides the name of the character encoding used in the body of this request.

Calling this method after the request has been accessed will have no no effect, unless a Reader or Stream has been obtained from the request, in which case an IllegalStateException is thrown.

Servlet: This must call through to the javax.servlet.ServletRequest method setCharacterEncoding().

Portlet: This must call through to the javax.portlet.ActionRequest method setCharacterEncoding().

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Throws:
java.io.UnsupportedEncodingException - if this is not a valid encoding
Since:
1.2

getRequestContextPath

public abstract java.lang.String getRequestContextPath()

Return the portion of the request URI that identifies the web application context for this request.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getContextPath().

Portlet: This must be the value returned by the javax.portlet.PortletRequest method getContextPath().


getRequestCookieMap

public abstract java.util.Map<java.lang.String,java.lang.Object> getRequestCookieMap()

Return an immutable Map whose keys are the set of cookie names included in the current request, and whose values (of type javax.servlet.http.Cookie) are the first (or only) cookie for each cookie name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getCookies(), unless null was returned, in which case this must be a zero-length array.

Portlet: Ths must be an empty Map.


getRequestHeaderMap

public abstract java.util.Map<java.lang.String,java.lang.String> getRequestHeaderMap()

Return an immutable Map whose keys are the set of request header names included in the current request, and whose values (of type String) are the first (or only) value for each header name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map. In addition, key comparisons must be performed in a case insensitive manner.

Servlet: This must be the set of headers available via the javax.servlet.http.HttpServletRequest methods getHeader() and getHeaderNames().

Portlet: This must be the set of properties available via the javax.portlet.PortletRequest methods getProperty() and getPropertyNames(). As such, HTTP headers will only be included if they were provided by the portlet container, and additional properties provided by the portlet container may also be included.


getRequestHeaderValuesMap

public abstract java.util.Map<java.lang.String,java.lang.String[]> getRequestHeaderValuesMap()

Return an immutable Map whose keys are the set of request header names included in the current request, and whose values (of type String[]) are all of the value for each header name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map. In addition, key comparisons must be performed in a case insensitive manner.

Servlet: This must be the set of headers available via the javax.servlet.http.HttpServletRequest methods getHeaders() and getHeaderNames().

Portlet: This must be the set of properties available via the javax.portlet.PortletRequest methods getProperties() and getPropertyNames(). As such, HTTP headers will only be included if they were provided by the portlet container, and additional properties provided by the portlet container may also be included.


getRequestLocale

public abstract java.util.Locale getRequestLocale()

Return the preferred Locale in which the client will accept content.

Servlet: This must be the value returned by the javax.servlet.ServletRequest method getLocale().

Portlet: This must be the value returned by the javax.portlet.PortletRequest method getLocale().


getRequestLocales

public abstract java.util.Iterator<java.util.Locale> getRequestLocales()

Return an Iterator over the preferred Locales specified in the request, in decreasing order of preference.

Servlet: This must be an Iterator over the values returned by the javax.servlet.ServletRequest method getLocales().

Portlet: This must be an Iterator over the values returned by the javax.portlet.PortletRequest method getLocales().


getRequestMap

public abstract java.util.Map<java.lang.String,java.lang.Object> getRequestMap()

Return a mutable Map representing the request scope attributes for the current application. The returned Map must implement the entire contract for a modifiable map as described in the JavaDocs for java.util.Map. Modifications made in the Map must cause the corresponding changes in the set of request scope attributes. Particularly the clear(), remove(), put(), putAll(), and get() operations must take the appropriate action on the underlying data structure.

For any of the Map methods that cause an element to be removed from the underlying data structure, the following action regarding managed-beans must be taken. If the element to be removed is a managed-bean, and it has one or more public no-argument void return methods annotated with javax.annotation.PreDestroy, each such method must be called before the element is removed from the underlying data structure. Elements that are not managed-beans, but do happen to have methods with that annotation must not have those methods called on removal. Any exception thrown by the PreDestroy annotated methods must by caught and not rethrown. The exception may be logged.

Servlet: This must be the set of attributes available via the javax.servlet.ServletRequest methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute().

Portlet: This must be the set of attributes available via the javax.portlet.PortletRequest methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute().


getRequestParameterMap

public abstract java.util.Map<java.lang.String,java.lang.String> getRequestParameterMap()

Return an immutable Map whose keys are the set of request parameters names included in the current request, and whose values (of type String) are the first (or only) value for each parameter name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map.

Servlet: This must be the set of parameters available via the javax.servlet.ServletRequest methods getParameter() and getParameterNames().

Portlet: This must be the set of parameters available via the javax.portlet.PortletRequest methods getParameter() and getParameterNames().


getRequestParameterNames

public abstract java.util.Iterator<java.lang.String> getRequestParameterNames()

Return an Iterator over the names of all request parameters included in the current request.

Servlet: This must be an Iterator over the values returned by the javax.servlet.ServletRequest method getParameterNames().

Portlet: This must be an Iterator over the values returned by the javax.portlet.PortletRequest method getParameterNames().


getRequestParameterValuesMap

public abstract java.util.Map<java.lang.String,java.lang.String[]> getRequestParameterValuesMap()

Return an immutable Map whose keys are the set of request parameters names included in the current request, and whose values (of type String[]) are all of the values for each parameter name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map.

Servlet: This must be the set of parameters available via the javax.servlet.ServletRequest methods getParameterValues() and getParameterNames().

Portlet: This must be the set of parameters available via the javax.portlet.PortletRequest methods getParameterValues() and getParameterNames().


getRequestPathInfo

public abstract java.lang.String getRequestPathInfo()

Return the extra path information (if any) included in the request URI; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getPathInfo().

Portlet: This must be null.


getRequestServletPath

public abstract java.lang.String getRequestServletPath()

Return the servlet path information (if any) included in the request URI; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getServletPath().

Portlet: This must be null.


getRequestCharacterEncoding

public java.lang.String getRequestCharacterEncoding()

Return the character encoding currently being used to interpret this request.

Servlet: This must return the value returned by the javax.servlet.ServletRequest method getCharacterEncoding().

Portlet: This must return the value returned by the javax.portlet.ActionRequest method getCharacterEncoding().

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

getRequestContentType

public java.lang.String getRequestContentType()

Return the MIME Content-Type for this request. If not available, return null.

Servlet: This must return the value returned by the javax.servlet.ServletRequest method getContentType().

Portlet: This must return null.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

getResponseCharacterEncoding

public java.lang.String getResponseCharacterEncoding()

Returns the name of the character encoding (MIME charset) used for the body sent in this response.

Servlet: This must return the value returned by the javax.servlet.ServletResponse method getCharacterEncoding().

Portlet: This must return null.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

getResponseContentType

public java.lang.String getResponseContentType()

Return the MIME Content-Type for this response. If not available, return null.

Servlet: This must return the value returned by the javax.servlet.ServletResponse method getContentType().

Portlet: This must return null.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

getResource

public abstract java.net.URL getResource(java.lang.String path)
                                  throws java.net.MalformedURLException

Return a URL for the application resource mapped to the specified path, if it exists; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.ServletContext method getResource(path).

Portlet: This must be the value returned by the javax.portlet.PortletContext method getResource(path).

Parameters:
path - The path to the requested resource, which must start with a slash ("/" character
Throws:
java.net.MalformedURLException - if the specified path is not in the correct form
java.lang.NullPointerException - if path is null

getResourceAsStream

public abstract java.io.InputStream getResourceAsStream(java.lang.String path)

Return an InputStream for an application resource mapped to the specified path, if it exists; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.ServletContext method getResourceAsStream(path).

Portlet: This must be the value returned by the javax.portlet.PortletContext method getResourceAsStream(path).

Parameters:
path - The path to the requested resource, which must start with a slash ("/" character
Throws:
java.lang.NullPointerException - if path is null

getResourcePaths

public abstract java.util.Set<java.lang.String> getResourcePaths(java.lang.String path)

Return the Set of resource paths for all application resources whose resource path starts with the specified argument.

Servlet: This must be the value returned by the javax.servlet.ServletContext method getResourcePaths(path).

Portlet: This must be the value returned by the javax.portlet.PortletContext method getResourcePaths(path).

Parameters:
path - Partial path used to match resources, which must start with a slash ("/") character
Throws:
java.lang.NullPointerException - if path is null

getResponse

public abstract java.lang.Object getResponse()

Return the environment-specific object instance for the current response.

Servlet: This is the current request's javax.servlet.http.HttpServletResponse instance.

Portlet: This is the current request's javax.portlet.PortletResponse instance, which will be either an ActionResponse or a RenderResponse depending upon when this method is called.


setResponse

public void setResponse(java.lang.Object response)

Set the environment-specific response to be returned by subsequent calls to getResponse(). This may be used to install a wrapper for the response.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

setResponseCharacterEncoding

public void setResponseCharacterEncoding(java.lang.String encoding)

Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8.

Servlet: This must call through to the javax.servlet.ServletResponse method setCharacterEncoding().

Portlet: This method must take no action.

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Since:
1.2

getSession

public abstract java.lang.Object getSession(boolean create)

If the create parameter is true, create (if necessary) and return a session instance associated with the current request. If the create parameter is false return any existing session instance associated with the current request, or return null if there is no such session.

Servlet: This must return the result of calling getSession(create) on the underlying javax.servlet.http.HttpServletRequest instance.

em>Portlet: This must return the result of calling getPortletSession(create) on the underlying javax.portlet.PortletRequest instance.

Parameters:
create - Flag indicating whether or not a new session should be created if there is no session associated with the current request

getSessionMap

public abstract java.util.Map<java.lang.String,java.lang.Object> getSessionMap()

Return a mutable Map representing the session scope attributes for the current application. The returned Map must implement the entire contract for a modifiable map as described in the JavaDocs for java.util.Map. Modifications made in the Map must cause the corresponding changes in the set of session scope attributes. Particularly the clear(), remove(), put(), and get() operations must take the appropriate action on the underlying data structure. Accessing attributes via this Map must cause the creation of a session associated with the current request, if such a session does not already exist.

For any of the Map methods that cause an element to be removed from the underlying data structure, the following action regarding managed-beans must be taken. If the element to be removed is a managed-bean, and it has one or more public no-argument void return methods annotated with javax.annotation.PreDestroy, each such method must be called before the element is removed from the underlying data structure. Elements that are not managed-beans, but do happen to have methods with that annotation must not have those methods called on removal. Any exception thrown by the PreDestroy annotated methods must by caught and not rethrown. The exception may be logged.

Servlet: This must be the set of attributes available via the javax.servlet.http.HttpServletSession methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute().

Portlet: This must be the set of attributes available via the javax.portlet.PortletSession methods getAttribute(), getAttributeNames(), removeAttribute(), and setAttribute(). All session attribute access must occur in PORTLET_SCOPE scope within the session.


getUserPrincipal

public abstract java.security.Principal getUserPrincipal()

Return the Principal object containing the name of the current authenticated user, if any; otherwise, return null.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method getUserPrincipal().

Portlet: This must be the value returned by the javax.portlet.http.PortletRequest method getUserPrincipal().


isUserInRole

public abstract boolean isUserInRole(java.lang.String role)

Return true if the currently authenticated user is included in the specified role. Otherwise, return false.

Servlet: This must be the value returned by the javax.servlet.http.HttpServletRequest method isUserInRole(role).

Portlet: This must be the value returned by the javax.portlet.http.PortletRequest method isUserInRole(role).

Parameters:
role - Logical role name to be checked
Throws:
java.lang.NullPointerException - if role is null

log

public abstract void log(java.lang.String message)

Log the specified message to the application object.

Servlet: This must be performed by calling the javax.servlet.ServletContext method log(String).

Portlet: This must be performed by calling the javax.portlet.PortletContext method log(String).

Parameters:
message - Message to be logged
Throws:
java.lang.NullPointerException - if message is null

log

public abstract void log(java.lang.String message,
                         java.lang.Throwable exception)

Log the specified message and exception to the application object.

Servlet: This must be performed by calling the javax.servlet.ServletContext method log(String,Throwable).

Portlet: This must be performed by calling the javax.portlet.PortletContext method log(String,Throwable).

Parameters:
message - Message to be logged
exception - Exception to be logged
Throws:
java.lang.NullPointerException - if message or exception is null

redirect

public abstract void redirect(java.lang.String url)
                       throws java.io.IOException

Redirect a request to the specified URL, and cause the responseComplete() method to be called on the FacesContext instance for the current request.

Servlet: This must be accomplished by calling the javax.servlet.http.HttpServletResponse method sendRedirect().

Portlet: This must be accomplished by calling the javax.portlet.ActionResponse method sendRedirect().

Parameters:
url - Absolute URL to which the client should be redirected
Throws:
java.lang.IllegalArgumentException - if the specified url is relative
java.lang.IllegalStateException - if, in a portlet environment, the current response object is a RenderResponse instead of an ActionResponse
java.lang.IllegalStateException - if, in a servlet environment, the current response has already been committed
java.io.IOException - if an input/output error occurs


Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved.