|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The PortletSession
interface provides a way to identify a user across more than one request and to store
transient information about that user.
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
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 | |
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. |
Method Summary | |
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(java.lang.String name)
Removes the object bound with the specified name under the PORTLET_SCOPE from this session. |
void |
removeAttribute(java.lang.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. |
Field Detail |
public static final int APPLICATION_SCOPE
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
public static final int PORTLET_SCOPE
0x02
Method Detail |
public java.lang.Object getAttribute(java.lang.String name) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
PORTLET_SCOPE
, or
null
if no object is bound under the name in that scope.
name
- a string specifying the name of the object
PORTLET_SCOPE
.
java.lang.IllegalStateException
- if this method is called on an invalidated session.
java.lang.IllegalArgumentException
- if name is null
.public java.lang.Object getAttribute(java.lang.String name, int scope) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
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
java.lang.IllegalStateException
- if this method is called on an invalidated session
java.lang.IllegalArgumentException
- if name is null
.public java.util.Enumeration getAttributeNames() throws java.lang.IllegalStateException
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.
Enumeration
of String
objects specifying the names of all the objects bound
to this session, or an empty Enumeration
if no attributes are available.
java.lang.IllegalStateException
- if this method is called on an invalidated sessionpublic java.util.Enumeration getAttributeNames(int scope) throws java.lang.IllegalStateException
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
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.
java.lang.IllegalStateException
- if this method is called on an invalidated sessionpublic long getCreationTime() throws java.lang.IllegalStateException
long
specifying when this session was created, expressed in milliseconds since 1/1/1970
GMT
java.lang.IllegalStateException
- if this method is called on an invalidated sessionpublic java.lang.String getId()
public long getLastAccessedTime()
Actions that your portlet takes, such as getting or setting a value associated with the session, do not affect the access time.
long
representing the last time the client sent a request associated with this session,
expressed in milliseconds since 1/1/1970 GMTpublic int getMaxInactiveInterval()
setMaxInactiveInterval
method. A negative time indicates the session should never
timeout.
setMaxInactiveInterval(int)
public PortletContext getPortletContext()
public void invalidate() throws java.lang.IllegalStateException
HttpSession
java.lang.IllegalStateException
- if this method is called on a session which has already been invalidatedpublic boolean isNew() throws java.lang.IllegalStateException
true
if the server has created a session, but the client has not joined yet.
java.lang.IllegalStateException
- if this method is called on a session which has already been invalidatedpublic void removeAttribute(java.lang.String name) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
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
.
java.lang.IllegalStateException
- if this method is called on a session which has been invalidated
java.lang.IllegalArgumentException
- if name is null
.public void removeAttribute(java.lang.String name, int scope) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
name
- the name of the object to be removed from this sessionscope
- session scope of this attribute
java.lang.IllegalStateException
- if this method is called on a session which has been invalidated
java.lang.IllegalArgumentException
- if name is null
.public void setAttribute(java.lang.String name, java.lang.Object value) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
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
java.lang.IllegalStateException
- if this method is called on a session which has been invalidated
java.lang.IllegalArgumentException
- if name is null
.public void setAttribute(java.lang.String name, java.lang.Object value, int scope) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
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
java.lang.IllegalStateException
- if this method is called on a session which has been invalidated
java.lang.IllegalArgumentException
- if name is null
.public void setMaxInactiveInterval(int interval)
interval
- An integer specifying the number of seconds
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |