Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.portlet
Interface PortletSession

All Known Implementing Classes:
  PortletSessionImpl

    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.

Version:
  $Revision: 5441 $
Author:
  Julien Viet

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

### APPLICATION_SCOPE

    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`

  See Also:
    Constant Field Values

### PORTLET_SCOPE

    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`

  See Also:
    Constant Field Values

Method Detail

### getAttribute

    java.lang.Object getAttribute(java.lang.String name)
                                  throws java.lang.IllegalStateException,
                                         java.lang.IllegalArgumentException

  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` - a string specifying the name of the object
  Returns:
    the object with the specified name for the `PORTLET_SCOPE`.
  Throws:
    `java.lang.IllegalStateException` - if this method is called on an invalidated session.
    `java.lang.IllegalArgumentException` - if name is `null`.

### getAttribute

    java.lang.Object getAttribute(java.lang.String name,
                                  int scope)
                                  throws java.lang.IllegalStateException,
                                         java.lang.IllegalArgumentException

  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` - a string specifying the name of the object
    `scope` - session scope of this attribute
  Returns:
    the object with the specified name
  Throws:
    `java.lang.IllegalStateException` - if this method is called on an invalidated session
    `java.lang.IllegalArgumentException` - if name is `null`.

### getAttributeNames

    java.util.Enumeration getAttributeNames()
                                            throws java.lang.IllegalStateException

  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:
    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.
  Throws:
    `java.lang.IllegalStateException` - if this method is called on an invalidated session

### getAttributeNames

    java.util.Enumeration getAttributeNames(int scope)
                                            throws java.lang.IllegalStateException

  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` - session scope of the attribute names
  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.
  Throws:
    `java.lang.IllegalStateException` - if this method is called on an invalidated session

### getCreationTime

    long getCreationTime()
                         throws java.lang.IllegalStateException

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

  Returns:
    a `long` specifying when this session was created, expressed in milliseconds since 1/1/1970 GMT
  Throws:
    `java.lang.IllegalStateException` - if this method is called on an invalidated session

### getId

    java.lang.String getId()

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

  Returns:
    a string specifying the identifier assigned to this session

### getLastAccessedTime

    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:
    a `long` representing the last time the client sent a request associated with this session, expressed in milliseconds since 1/1/1970 GMT

### getMaxInactiveInterval

    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:
    an integer specifying the number of seconds this session remains open between client requests
  See Also:
    `setMaxInactiveInterval(int)`

### getPortletContext

    PortletContext getPortletContext()

  Returns the portlet application context associated with this session.

  Returns:
    the portlet application context

### invalidate

    void invalidate()
                    throws java.lang.IllegalStateException

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

  Invalidating the portlet session will result in invalidating the underlying `HttpSession`

  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has already been invalidated

### isNew

    boolean isNew()
                  throws java.lang.IllegalStateException

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

  Returns:
    `true` if the server has created a session, but the client has not joined yet.
  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has already been invalidated

### removeAttribute

    void removeAttribute(java.lang.String name)
                         throws java.lang.IllegalStateException,
                                java.lang.IllegalArgumentException

  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` - the name of the object to be removed from this session in the `PORTLET_SCOPE`.
  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has been invalidated
    `java.lang.IllegalArgumentException` - if name is `null`.

### removeAttribute

    void removeAttribute(java.lang.String name,
                         int scope)
                         throws java.lang.IllegalStateException,
                                java.lang.IllegalArgumentException

  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` - the name of the object to be removed from this session
    `scope` - session scope of this attribute
  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has been invalidated
    `java.lang.IllegalArgumentException` - if name is `null`.

### setAttribute

    void setAttribute(java.lang.String name,
                      java.lang.Object value)
                      throws java.lang.IllegalStateException,
                             java.lang.IllegalArgumentException

  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` - the name to which the object is bound under the `PORTLET_SCOPE`; this cannot be `null`.
    `value` - the object to be bound
  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has been invalidated
    `java.lang.IllegalArgumentException` - if name is `null`.

### setAttribute

    void setAttribute(java.lang.String name,
                      java.lang.Object value,
                      int scope)
                      throws java.lang.IllegalStateException,
                             java.lang.IllegalArgumentException

  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` - the name to which the object is bound; this cannot be `null`.
    `value` - the object to be bound
    `scope` - session scope of this attribute
  Throws:
    `java.lang.IllegalStateException` - if this method is called on a session which has been invalidated
    `java.lang.IllegalArgumentException` - if name is `null`.

### setMaxInactiveInterval

    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` - An integer specifying the number of seconds

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD