javax.portlet
Interface PortletSession
public interface PortletSession
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:
APPLICATION_SCOPE
PORTLET_SCOPE
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.
static int | APPLICATION_SCOPE - This constant defines an application wide scope for the session attribute.
|
static int | PORTLET_SCOPE - This constant defines the scope of the session attribute to be
private to the portlet and its included resources.
|
java.lang.Object | getAttribute(java.lang.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.
|
java.lang.Object | getAttribute(java.lang.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.
|
java.util.Enumeration | 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.
|
java.util.Enumeration | 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.
|
long | getCreationTime() - Returns the time when this session was created, measured in
milliseconds since midnight January 1, 1970 GMT.
|
java.lang.String | getId() - Returns a string containing the unique identifier assigned to this session.
|
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.
|
int | getMaxInactiveInterval() - Returns the maximum time interval, in seconds, for which the portlet container
keeps this session open between client accesses.
|
PortletContext | getPortletContext() - Returns the portlet application context associated with this session.
|
void | invalidate() - Invalidates this session (all scopes) and unbinds any objects bound to it.
|
boolean | isNew() - Returns true if the client does not yet know about the session or
if the client chooses not to join the session.
|
void | removeAttribute(String name) - Removes the object bound with the specified name under
the
PORTLET_SCOPE from
this session.
|
void | removeAttribute(String name, int scope) - Removes the object bound with the specified name and the given scope from
this session.
|
void | setAttribute(java.lang.String name, java.lang.Object value) - Binds an object to this session under the
PORTLET_SCOPE , using the name specified.
|
void | setAttribute(java.lang.String name, java.lang.Object value, int scope) - Binds an object to this session in the given scope, using the name specified.
|
void | setMaxInactiveInterval(int interval) - Specifies the time, in seconds, between client requests, before the
portlet container invalidates this session.
|
APPLICATION_SCOPE
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_SCOPE
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
getAttribute
public java.lang.Object getAttribute(java.lang.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.
name
- a string specifying the name of the object
- the object with the specified name for
the
PORTLET_SCOPE
.
getAttribute
public java.lang.Object getAttribute(java.lang.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.
name
- a string specifying the name of the objectscope
- session scope of this attribute
- the object with the specified name
getAttributeNames
public java.util.Enumeration 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.
- 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
public java.util.Enumeration 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.
scope
- session scope of the attribute names
- 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.
getCreationTime
public long getCreationTime()
Returns the time when this session was created, measured in
milliseconds since midnight January 1, 1970 GMT.
- a
long
specifying
when this session was created,
expressed in
milliseconds since 1/1/1970 GMT
getId
public java.lang.String getId()
Returns a string containing the unique identifier assigned to this session.
- a string specifying the identifier
assigned to this session
getLastAccessedTime
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.
- a
long
representing the last time
the client sent a request associated
with this session, expressed in
milliseconds since 1/1/1970 GMT
getMaxInactiveInterval
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.
- an integer specifying the number of
seconds this session remains open
between client requests
getPortletContext
public PortletContext getPortletContext()
Returns the portlet application context associated with this session.
- the portlet application context
invalidate
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
isNew
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.
true
if the
server has created a session,
but the client has not joined yet.
removeAttribute
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.
name
- the name of the object to be
removed from this session in the
PORTLET_SCOPE
.
removeAttribute
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.
name
- the name of the object to be
removed from this sessionscope
- session scope of this attribute
setAttribute
public void setAttribute(java.lang.String name,
java.lang.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()
.
name
- the name to which the object is bound under
the PORTLET_SCOPE
;
this cannot be null
.value
- the object to be bound
setAttribute
public void setAttribute(java.lang.String name,
java.lang.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()
.
name
- the name to which the object is bound;
this cannot be null
.value
- the object to be boundscope
- session scope of this attribute
setMaxInactiveInterval
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.
interval
- An integer specifying the number
of seconds