Top Description Fields Methods
javax.portlet

public Interface PortletSession

Known Direct Implementers
javax.portlet.filter.PortletSessionWrapper
Imports
java.util.Map

The PortletSession interface provides a way to identify a user across more than one request and to store transient information about that user.

A PortletSession is created per user client per portlet application.

A portlet can bind an object attribute into a PortletSession by name. The PortletSession interface defines two scopes for storing objects:

All objects stored in the session using the APPLICATION_SCOPE must be available to all the portlets, servlets and JSPs that belongs to the same portlet application and that handles a request identified as being a part of the same session. Objects stored in the session using the PORTLET_SCOPE must be available to the portlet during requests for the same portlet window that the objects where stored from. Attributes stored in the PORTLET_SCOPE are not protected from other web components of the portlet application. They are just conveniently namespaced.

The portlet session is based on the HttpSession. Therefore all HttpSession listeners do apply to the portlet session and attributes set in the portlet session are visible in the HttpSession and vice versa.

Field Summary

Modifier and TypeField and Description
public static final int
APPLICATION_SCOPE

This constant defines an application wide scope for the session attribute.

public static final int
PORTLET_SCOPE

This constant defines the scope of the session attribute to be private to the portlet and its included resources.

Method Summary

Modifier and TypeMethod and Description
public Object

Returns:

the object with the specified name for the PORTLET_SCOPE.
getAttribute
(String
a string specifying the name of the object
name
)

Returns the object bound with the specified name in this session under the PORTLET_SCOPE, or null if no object is bound under the name in that scope.

public Object

Returns:

the object with the specified name
getAttribute
(String
a string specifying the name of the object
name
,
int
session scope of this attribute
scope
)

Returns the object bound with the specified name in this session, or null if no object is bound under the name in the given scope.

public Map<String, Object>

Returns:

an immutable Map containing the session attributes in the portlet session scope as keys and attribute values as map values, or an empty Map if no session attributes exist. The keys in the map are of type String, the values of type Object.
getAttributeMap
()

Returns a Map of the session attributes in the portlet session scope.

public Map<String, Object>

Returns:

an immutable Map containing the session attributes in the given scope as keys and attribute values as map values, or an empty Map if no session attributes exist. The keys in the map are of type String, the values of type Object.
getAttributeMap
(int
session scope of this attribute
scope
)

Returns a Map of the session attributes in the given session scope.

public Enumeration<String>

Returns:

an Enumeration of String objects specifying the names of all the objects bound to this session, or an empty Enumeration if no attributes are available.
getAttributeNames
()

Returns an Enumeration of String objects containing the names of all the objects bound to this session under the PORTLET_SCOPE, or an empty Enumeration if no attributes are available.

public Enumeration<String>

Returns:

an Enumeration of String objects specifying the names of all the objects bound to this session, or an empty Enumeration if no attributes are available in the given scope.
getAttributeNames
(int
session scope of the attribute names
scope
)

Returns an Enumeration of String objects containing the names of all the objects bound to this session in the given scope, or an empty Enumeration if no attributes are available in the given scope.

public long

Returns:

a long specifying when this session was created, expressed in milliseconds since 1/1/1970 GMT
getCreationTime
()

Returns the time when this session was created, measured in milliseconds since midnight January 1, 1970 GMT.

public String

Returns:

a string specifying the identifier assigned to this session
getId
()

Returns a string containing the unique identifier assigned to this session.

public long

Returns:

a long representing the last time the client sent a request associated with this session, expressed in milliseconds since 1/1/1970 GMT
getLastAccessedTime
()

Returns the last time the client sent a request associated with this session, as the number of milliseconds since midnight January 1, 1970 GMT.

public int

Returns:

an integer specifying the number of seconds this session remains open between client requests
getMaxInactiveInterval
()

Returns the maximum time interval, in seconds, for which the portlet container keeps this session open between client accesses.

public PortletContext

Returns:

the portlet application context
getPortletContext
()

Returns the portlet application context associated with this session.

public void
invalidate()

Invalidates this session (all scopes) and unbinds any objects bound to it.

public boolean

Returns:

true if the server has created a session, but the client has not joined yet.
isNew
()

Returns true if the client does not yet know about the session or if the client chooses not to join the session.

public void
removeAttribute(String
the name of the object to be removed from this session in the PORTLET_SCOPE.
name
)

Removes the object bound with the specified name under the PORTLET_SCOPE from this session.

public void
removeAttribute(String
the name of the object to be removed from this session
name
,
int
session scope of this attribute
scope
)

Removes the object bound with the specified name and the given scope from this session.

public void
setAttribute(String
the name to which the object is bound under the PORTLET_SCOPE; this cannot be null.
name
,
Object
the object to be bound
value
)

Binds an object to this session under the PORTLET_SCOPE, using the name specified.

public void
setAttribute(String
the name to which the object is bound; this cannot be null.
name
,
Object
the object to be bound
value
,
int
session scope of this attribute
scope
)

Binds an object to this session in the given scope, using the name specified.

public void
setMaxInactiveInterval(int
An integer specifying the number of seconds
interval
)

Specifies the time, in seconds, between client requests, before the portlet container invalidates this session.

Field Detail

APPLICATION_SCOPEback to summary
public static final int APPLICATION_SCOPE

This constant defines an application wide scope for the session attribute. APPLICATION_SCOPE session attributes enable Portlets within one portlet application to share data.

Portlets may need to prefix attributes set in this scope with some ID, to avoid overwriting each other's attributes in the case where two portlets of the same portlet definition are created.

Value: 0x01

PORTLET_SCOPEback to summary
public static final int PORTLET_SCOPE

This constant defines the scope of the session attribute to be private to the portlet and its included resources.

Value: 0x02

Method Detail

getAttributeback to summary
public Object getAttribute(String name)

Returns the object bound with the specified name in this session under the PORTLET_SCOPE, or null if no object is bound under the name in that scope.

Parameters
name:String

a string specifying the name of the object

Returns:Object

the object with the specified name for the PORTLET_SCOPE.

Exceptions
IllegalStateException:
if this method is called on an invalidated session.
IllegalArgumentException:
if name is null.
getAttributeback to summary
public Object getAttribute(String name, int scope)

Returns the object bound with the specified name in this session, or null if no object is bound under the name in the given scope.

Parameters
name:String

a string specifying the name of the object

scope:int

session scope of this attribute

Returns:Object

the object with the specified name

Exceptions
IllegalStateException:
if this method is called on an invalidated session. , or the scope is unknown to the container
IllegalArgumentException:
if name is null, or if the scope is unknown to the container.
getAttributeMapback to summary
public Map<String, Object> getAttributeMap()

Returns a Map of the session attributes in the portlet session scope.

The keys are of type String and the values in the returned Map are from type Object.

If no session attributes exist this method returns an empty Map.

Returns:Map<String, Object>

an immutable Map containing the session attributes in the portlet session scope as keys and attribute values as map values, or an empty Map if no session attributes exist. The keys in the map are of type String, the values of type Object.

Since
2.0
getAttributeMapback to summary
public Map<String, Object> getAttributeMap(int scope)

Returns a Map of the session attributes in the given session scope.

The keys are of type String and the values in the returned Map are from type Object.

If no session attributes exist this method returns an empty Map.

Parameters
scope:int

session scope of this attribute

Returns:Map<String, Object>

an immutable Map containing the session attributes in the given scope as keys and attribute values as map values, or an empty Map if no session attributes exist. The keys in the map are of type String, the values of type Object.

Exceptions
IllegalArgumentException:
if the scope is unknown to the container.
Since
2.0
getAttributeNamesback to summary
public Enumeration<String> getAttributeNames()

Returns an Enumeration of String objects containing the names of all the objects bound to this session under the PORTLET_SCOPE, or an empty Enumeration if no attributes are available.

Returns:Enumeration<String>

an Enumeration of String objects specifying the names of all the objects bound to this session, or an empty Enumeration if no attributes are available.

Exceptions
IllegalStateException:
if this method is called on an invalidated session
getAttributeNamesback to summary
public Enumeration<String> getAttributeNames(int scope)

Returns an Enumeration of String objects containing the names of all the objects bound to this session in the given scope, or an empty Enumeration if no attributes are available in the given scope.

Parameters
scope:int

session scope of the attribute names

Returns:Enumeration<String>

an Enumeration of String objects specifying the names of all the objects bound to this session, or an empty Enumeration if no attributes are available in the given scope.

Exceptions
IllegalStateException:
if this method is called on an invalidated session. , or the scope is unknown to the container
IllegalArgumentException:
if the scope is unknown to the container.
getCreationTimeback to summary
public long getCreationTime()

Returns the time when this session was created, measured in milliseconds since midnight January 1, 1970 GMT.

Returns:long

a long specifying when this session was created, expressed in milliseconds since 1/1/1970 GMT

Exceptions
IllegalStateException:
if this method is called on an invalidated session
getIdback to summary
public String getId()

Returns a string containing the unique identifier assigned to this session.

Returns:String

a string specifying the identifier assigned to this session

getLastAccessedTimeback to summary
public long getLastAccessedTime()

Returns the last time the client sent a request associated with this session, as the number of milliseconds since midnight January 1, 1970 GMT.

Actions that your portlet takes, such as getting or setting a value associated with the session, do not affect the access time.

Returns:long

a long representing the last time the client sent a request associated with this session, expressed in milliseconds since 1/1/1970 GMT

getMaxInactiveIntervalback to summary
public int getMaxInactiveInterval()

Returns the maximum time interval, in seconds, for which the portlet container keeps this session open between client accesses. After this interval, the portlet container invalidates the session. The maximum time interval can be set with the setMaxInactiveInterval method. A negative time indicates the session should never timeout.

Returns:int

an integer specifying the number of seconds this session remains open between client requests

See Also
setMaxInactiveInterval
getPortletContextback to summary
public PortletContext getPortletContext()

Returns the portlet application context associated with this session.

Returns:PortletContext

the portlet application context

invalidateback to summary
public void invalidate()

Invalidates this session (all scopes) and unbinds any objects bound to it.

Invalidating the portlet session will result in invalidating the underlying HttpSession

Exceptions
IllegalStateException:
if this method is called on a session which has already been invalidated
isNewback to summary
public boolean isNew()

Returns true if the client does not yet know about the session or if the client chooses not to join the session.

Returns:boolean

true if the server has created a session, but the client has not joined yet.

Exceptions
IllegalStateException:
if this method is called on a session which has already been invalidated
removeAttributeback to summary
public void removeAttribute(String name)

Removes the object bound with the specified name under the PORTLET_SCOPE from this session. If the session does not have an object bound with the specified name, this method does nothing.

Parameters
name:String

the name of the object to be removed from this session in the PORTLET_SCOPE.

Exceptions
IllegalStateException:
if this method is called on a session which has been invalidated
IllegalArgumentException:
if name is null.
removeAttributeback to summary
public void removeAttribute(String name, int scope)

Removes the object bound with the specified name and the given scope from this session. If the session does not have an object bound with the specified name, this method does nothing.

Parameters
name:String

the name of the object to be removed from this session

scope:int

session scope of this attribute

Exceptions
IllegalStateException:
if this method is called on a session which has been invalidated
IllegalArgumentException:
if name is null, or if the scope is unknown to the container.
setAttributeback to summary
public void setAttribute(String name, Object value)

Binds an object to this session under the PORTLET_SCOPE, using the name specified. If an object of the same name in this scope is already bound to the session, that object is replaced.

After this method has been executed, and if the new object implements HttpSessionBindingListener, the container calls HttpSessionBindingListener.valueBound. The container then notifies any HttpSessionAttributeListeners in the web application.

If an object was already bound to this session that implements HttpSessionBindingListener, its HttpSessionBindingListener.valueUnbound method is called.

If the value is null, this has the same effect as calling removeAttribute().

Parameters
name:String

the name to which the object is bound under the PORTLET_SCOPE; this cannot be null.

value:Object

the object to be bound

Exceptions
IllegalStateException:
if this method is called on a session which has been invalidated
IllegalArgumentException:
if name is null.
setAttributeback to summary
public void setAttribute(String name, Object value, int scope)

Binds an object to this session in the given scope, using the name specified. If an object of the same name in this scope is already bound to the session, that object is replaced.

After this method has been executed, and if the new object implements HttpSessionBindingListener, the container calls HttpSessionBindingListener.valueBound. The container then notifies any HttpSessionAttributeListeners in the web application.

If an object was already bound to this session that implements HttpSessionBindingListener, its HttpSessionBindingListener.valueUnbound method is called.

If the value is null, this has the same effect as calling removeAttribute().

Parameters
name:String

the name to which the object is bound; this cannot be null.

value:Object

the object to be bound

scope:int

session scope of this attribute

Exceptions
IllegalStateException:
if this method is called on a session which has been invalidated
IllegalArgumentException:
if name is null or if the scope is unknown to the container.
setMaxInactiveIntervalback to summary
public void setMaxInactiveInterval(int interval)

Specifies the time, in seconds, between client requests, before the portlet container invalidates this session. A negative time indicates the session should never timeout.

Parameters
interval:int

An integer specifying the number of seconds