| 
 | WebObjects 5.4.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.webobjects.appserver.WOSessionStore
public abstract class WOSessionStore
WOSessionStore, an abstract superclass, offers an object abstraction for storing client state per session. The application object (WOApplication) uses an instance of a concrete WOSessionStore subclass to implement a strategy for storing and retrieving session state. Set the WOSessionStore during
 application initialization through WOApplication's setSessionStore method.
 
 An application first creates a session (WOSession) when it receives a request without a session ID. When this first request has been handled, the application stores the WOSession object under a randomly generated session ID by invoking its own saveSessionForContext method. This
 method by default forwards the method to the chosen WOSessionStore and that WOSessionStore takes care of the details of saving session state. When the next request comes in for that session, the application restores the session by sending itself restoreSessionWithID, which by
 default is forwarded to the application's WOSessionStore. The WOSessionStore then asks the WOContext of the transaction for the session ID of the session. Based on the implementation of the WOSessionStore, the session object is located and returned.
 
 There is one subclass of WOSessionStore implemented for the developer's convenience. A server WOSessionStore (the default) stores session state in the server, in application memory. The serverSessionStore method returns this WOSessionStore.
 
 You can create a custom session store by making a subclass of WOSessionStore. The subclass should properly implement the saveSessionForContext and restoreSessionWithID methods and should have a public method that the application object can use to obtain an instance.
 Some interesting session stores could be:
 
WOSessionStore.saveSessionForContext(WOContext), 
WOSessionStore.restoreSessionWithID(String, WORequest), 
WOSessionStore.serverSessionStore(), 
WOApplication.setSessionStore(WOSessionStore)| Constructor Summary | |
|---|---|
| WOSessionStore()Creates a default WOSessionStore. | |
| Method Summary | |
|---|---|
|  void | checkInSessionForContext(WOContext context)Checks in the session in contextso that pending (and future) requests for the same session may proceed. | 
|  WOSession | checkOutSessionWithID(String id,
                      WORequest aRequest)Checks out a session using id, which is the session id associated with the session. | 
|  void | finalize()Inherited finalize() method from java.lang.Object. | 
| abstract  WOSession | removeSessionWithID(String sessionID)Removes a WOSession instance from storage in order to make it eligible for garbage collection. | 
| abstract  WOSession | restoreSessionWithID(String sessionID,
                     WORequest aRequest)Restores a WOSession associated with sessionIDfrom storage. | 
| abstract  void | saveSessionForContext(WOContext context)Saves the current WOSession in contextinto storage. | 
| static WOSessionStore | serverSessionStore()Gets the default WOSessionStore object that saves and restores session states using application memory. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public WOSessionStore()
| Method Detail | 
|---|
public void finalize()
              throws Throwable
java.lang.Object.
finalize in class ObjectThrowable - Exception raised by this method
public final WOSession checkOutSessionWithID(String id,
                                             WORequest aRequest)
id, which is the session id associated with the session. This method calls restoreSessionWithID (implemented in the concrete subclass) to do the actual session restoration using whatever storage technique is supported by the subclass.
 If the session is located and restored, this method ensures that simultaneous access to the same session is precluded. The session should have been checked in using checkInSessionForContext.
id - the session id associated with the session to be checked outaRequest - the input HTTP request for the session restoration
null otherwiseWOSessionStore.restoreSessionWithID(String, WORequest), 
WOSessionStore.checkInSessionForContext(WOContext)public final void checkInSessionForContext(WOContext context)
context so that pending (and future) requests for the same session may proceed. This method is called by WOApplication to save the session even if the session was not previously checked out via 
 checkOutSessionWithID (that is, the session
 is a new session which was just created and, therefore, not restored).
 
 Internally, this method calls saveSessionForContext (implemented in the concrete subclass) to save the session in context using whatever storage technique is supported by the subclass.
context - the WOContext to retrieve the current session to be checked inWOSessionStore.saveSessionForContext(WOContext), 
WOSessionStore.checkOutSessionWithID(String, WORequest)public abstract WOSession removeSessionWithID(String sessionID)
This method should be implemented by concrete WOSessionStore subclasses.
sessionID - the session id associated with the WOSession to be removed
null otherwise
public abstract WOSession restoreSessionWithID(String sessionID,
                                               WORequest aRequest)
sessionID from storage. This method is called from checkOutSessionWithID and is to be implemented by a concrete WOSessionStore subclass. The subclass is free to decide on the kind of suitable storage and the algorithm for
 restoration.
 The default implementation does nothing.
sessionID - the session id associated with the WOSession to be restoredaRequest - the input HTTP request for session restoration
null otherwiseWOSessionStore.checkOutSessionWithID(String, WORequest)public abstract void saveSessionForContext(WOContext context)
context into storage. This method is called from checkInSessionForContext and is to implemented by a concrete WOSessionStore subclass. The subclass is free to decided on the kind of suitable storage and the algorithm for saving.
 The default implementation does nothing.
context - the WOContext to retrieve the current session to be savedWOSessionStore.checkInSessionForContext(WOContext)public static WOSessionStore serverSessionStore()
State storage in the server's application memory is the easiest strategy and is usually good enough for most general use. You can also easily manage the amount of storage consumed by setting session timeouts, limiting the size of the page-instance cache, and page uniquing.
| 
 | Last updated June 2008 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||