| java.lang.Object sunlabs.brazil.session.SessionManager
All known Subclasses: sunlabs.brazil.session.SerialPersist, sunlabs.brazil.session.PJamaSessionManager, sunlabs.brazil.session.CacheManager,
SessionManager | public class SessionManager (Code) | | The SessionManager associates an object with a Session ID
to give Handlers the ability to maintain state that lasts for the
duration of a session instead of just for the duration of a request.
An example of session-lifetime information is the set of stocks that
a particular user is interested in. When the hypothetical
StockHandler gets a request, it would get determine which
stocks to display based on the Session ID of the request.
Operating with the SessionManager is the mechanism to
discover the Session ID of a request and/or create new Session IDs.
For example, the first time a user goes to the server providing the stock
market information, they could get a cookie. Subsequently, every time
they visit the stock market page the cookie present in the request
would be decoded and matched with the existing Session ID for use by
the StockHandler .
The SessionManager operates as a bag of globally
accessible resources. Existing subclasses of the
SessionManager also provide persistence, that is, a way to
recover these resources even if the server process is terminated and
later restarted, to get back to the state things were in.
author: Stephen Uhler (stephen.uhler@sun.com) author: Colin Stevens (colin.stevens@sun.com) version: 1.12, 00/12/08 |
Field Summary | |
protected Hashtable | sessions A Hashtable used when mapping Session IDs to objects.
Keys are session objects. |
Method Summary | |
public static Object | getSession(Object session, Object ident, Class type) Returns the object associated with the given Session ID. | public Object | getSessionObject(Object session, Object ident, Class type) Returns the object associated with the given Session ID and ident.
This is the instance method that is invoked by the static method
SessionManager.getSession . | public static void | setSessionManager(SessionManager mgr) Installs the given SessionManager object as the
default session manager to be invoked when getSession
is called. |
sessions | protected Hashtable sessions(Code) | | A Hashtable used when mapping Session IDs to objects.
Keys are session objects. Values are another
Hashtable (hashtable B).
Each key in hashtable B is the ident and each value is the
persistent object returned by getSession . Also,
hashtable B is the object that is returned by getSession
if the ident is null .
|
getSession | public static Object getSession(Object session, Object ident, Class type)(Code) | | Returns the object associated with the given Session ID. Passing in
the same (hash-key equivalent) Session ID will return the same object.
This static method will dispatch to the currently installed
SessionManager instance.
Parameters: session - The Session ID for the persistent session information. Ifthe session does not exist, a new one is created.May be null to get informationnot associated with a particular Session ID, but that someHandler wants to make persistent anyhow. Parameters: ident - An arbitray identifier used to determine which object(associated with the given session ) the callerwants. May be null to return theHashtable that contains all the objectsassociated with the given Session ID. Parameters: type - The Class of the object to create. If the givensession and ident did not specifyan existing object, a new one is created by callingnewInstance based on the type .If null , then this method returnsnull if the object didn't exist, instead ofallocating a new object. The return value depends upon session ,ident and type as follows: session | ident | type | result |
---|
exists | exists | -- | Returns existing object. type is ignored. | exists | doesn't exist | class | Returns newInstance of class. | exists | doesn't exist | null | Returns null . | exists | null | -- | Returns Hashtable of all objects forgiven session. | doesn't exist | specified | -- | Creates a new session | doesn't exist | null | -- | Returns null . | null | -- | -- | As above, but information is about the "no-session". |
|
getSessionObject | public Object getSessionObject(Object session, Object ident, Class type)(Code) | | Returns the object associated with the given Session ID and ident.
This is the instance method that is invoked by the static method
SessionManager.getSession . Implementors of Session
Managers provide one of these. Users call
SessionManager.getSession .
|
setSessionManager | public static void setSessionManager(SessionManager mgr)(Code) | | Installs the given SessionManager object as the
default session manager to be invoked when getSession
is called.
Parameters: mgr - The SessionManager object. |
|
|