Package org.apache.wicket.session
Class HttpSessionStore
- java.lang.Object
-
- org.apache.wicket.session.HttpSessionStore
-
- All Implemented Interfaces:
ISessionStore
public class HttpSessionStore extends Object implements ISessionStore
Implementation ofISessionStore
that works with web applications and provides some specific http servlet/ session related functionality.- Author:
- jcompagner, Eelco Hillenius, Matej Knopp
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
HttpSessionStore.SessionBindingListener
Reacts on unbinding from the session by cleaning up the session related data.-
Nested classes/interfaces inherited from interface org.apache.wicket.session.ISessionStore
ISessionStore.BindListener, ISessionStore.UnboundListener
-
-
Constructor Summary
Constructors Constructor Description HttpSessionStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bind(Request request, Session newSession)
Adds the provided new session to this facade using the provided request.void
destroy()
Called when the WebApplication is destroyed.void
flushSession(Request request, Session session)
Flushes the session.Serializable
getAttribute(Request request, String name)
Gets the attribute value with the given nameList<String>
getAttributeNames(Request request)
Set<ISessionStore.BindListener>
getBindListeners()
protected javax.servlet.http.HttpServletRequest
getHttpServletRequest(Request request)
String
getSessionId(Request request, boolean create)
Get the session id for the provided request.Set<ISessionStore.UnboundListener>
getUnboundListener()
protected Session
getWicketSession(Request request)
Reads the WicketSession
from theHttpSession
's attributevoid
invalidate(Request request)
Invalidates the session.Session
lookup(Request request)
Retrieves the session for the provided request from this facade.protected void
onBind(Request request, Session newSession)
Template method that is called when a session is being bound to the session store.protected void
onUnbind(String sessionId)
Template method that is called when the session is being detached from the store, which typically happens when theHttpSession
was invalidated.void
registerBindListener(ISessionStore.BindListener listener)
Registers listener invoked when session is bound.void
registerUnboundListener(ISessionStore.UnboundListener listener)
Registers listener invoked when session is unbound.void
removeAttribute(Request request, String name)
Removes the attribute with the given name.void
setAttribute(Request request, String name, Serializable value)
Adds or replaces the attribute with the given name and value.protected void
setWicketSession(Request request, Session session)
Stores the WicketSession
in an attribute in theHttpSession
void
unregisterBindListener(ISessionStore.BindListener listener)
Unregisters listener invoked when session is bound.void
unregisterUnboundListener(ISessionStore.UnboundListener listener)
Unregisters listener invoked when session is unbound.
-
-
-
Constructor Detail
-
HttpSessionStore
public HttpSessionStore()
-
-
Method Detail
-
getHttpServletRequest
protected final javax.servlet.http.HttpServletRequest getHttpServletRequest(Request request)
- Parameters:
request
- The Wicket request- Returns:
- The http servlet request
-
bind
public final void bind(Request request, Session newSession)
Description copied from interface:ISessionStore
Adds the provided new session to this facade using the provided request.- Specified by:
bind
in interfaceISessionStore
- Parameters:
request
- The request that triggered making a new sessionnewSession
- The new session
-
flushSession
public void flushSession(Request request, Session session)
Description copied from interface:ISessionStore
Flushes the session. Flushing the session generally means setting the attribute with the value of the current session. Some servlet containers use the setAttribute() as a signal that the value is dirty and needs to be replicated. Essentially this call comes down to:String attr=getSessionAttributeName(); Session session=getAttribute(attr); setAttribute(attr, session);
If the session is not yet bound it will be.- Specified by:
flushSession
in interfaceISessionStore
- Parameters:
request
- current requestsession
- session to be flushed
-
destroy
public void destroy()
Description copied from interface:ISessionStore
Called when the WebApplication is destroyed.- Specified by:
destroy
in interfaceISessionStore
-
getSessionId
public String getSessionId(Request request, boolean create)
Description copied from interface:ISessionStore
Get the session id for the provided request. If create is false and the creation of the actual session is deferred, this method should return null to reflect it doesn't have one.- Specified by:
getSessionId
in interfaceISessionStore
- Parameters:
request
- The requestcreate
- Whether to create an actual session (typically an instance ofHttpSession
) when not already done so- Returns:
- The session id for the provided request, possibly null if create is false and the creation of the actual session was deferred
-
invalidate
public final void invalidate(Request request)
Description copied from interface:ISessionStore
Invalidates the session.- Specified by:
invalidate
in interfaceISessionStore
- Parameters:
request
- the current request
-
lookup
public final Session lookup(Request request)
Description copied from interface:ISessionStore
Retrieves the session for the provided request from this facade.This method should return null if it is not bound yet, so that Wicket can recognize that it should create a session and call
ISessionStore.bind(Request, Session)
right after that.- Specified by:
lookup
in interfaceISessionStore
- Parameters:
request
- The current request- Returns:
- The session for the provided request or null if the session was not bound
-
getWicketSession
protected Session getWicketSession(Request request)
Reads the WicketSession
from theHttpSession
's attribute- Parameters:
request
- The Wicket request- Returns:
- The Wicket Session or
null
-
setWicketSession
protected void setWicketSession(Request request, Session session)
Stores the WicketSession
in an attribute in theHttpSession
- Parameters:
request
- The Wicket requestsession
- The Wicket session
-
onBind
protected void onBind(Request request, Session newSession)
Template method that is called when a session is being bound to the session store. It is called before the session object itself is added to this store (which is done by callingISessionStore.setAttribute(Request, String, Serializable)
with keySession.SESSION_ATTRIBUTE_NAME
.- Parameters:
request
- The requestnewSession
- The new session
-
onUnbind
protected void onUnbind(String sessionId)
Template method that is called when the session is being detached from the store, which typically happens when theHttpSession
was invalidated.- Parameters:
sessionId
- The session id of the session that was invalidated.
-
getAttribute
public final Serializable getAttribute(Request request, String name)
Description copied from interface:ISessionStore
Gets the attribute value with the given name- Specified by:
getAttribute
in interfaceISessionStore
- Parameters:
request
- the current requestname
- The name of the attribute to store- Returns:
- The value of the attribute
-
getAttributeNames
public final List<String> getAttributeNames(Request request)
- Specified by:
getAttributeNames
in interfaceISessionStore
- Parameters:
request
- the current request- Returns:
- List of attributes for this session
-
removeAttribute
public final void removeAttribute(Request request, String name)
Description copied from interface:ISessionStore
Removes the attribute with the given name.- Specified by:
removeAttribute
in interfaceISessionStore
- Parameters:
request
- the current requestname
- the name of the attribute to remove
-
setAttribute
public final void setAttribute(Request request, String name, Serializable value)
Description copied from interface:ISessionStore
Adds or replaces the attribute with the given name and value.- Specified by:
setAttribute
in interfaceISessionStore
- Parameters:
request
- the current requestname
- the name of the attributevalue
- the value of the attribute
-
registerUnboundListener
public final void registerUnboundListener(ISessionStore.UnboundListener listener)
Description copied from interface:ISessionStore
Registers listener invoked when session is unbound.- Specified by:
registerUnboundListener
in interfaceISessionStore
-
unregisterUnboundListener
public final void unregisterUnboundListener(ISessionStore.UnboundListener listener)
Description copied from interface:ISessionStore
Unregisters listener invoked when session is unbound.- Specified by:
unregisterUnboundListener
in interfaceISessionStore
-
getUnboundListener
public final Set<ISessionStore.UnboundListener> getUnboundListener()
- Specified by:
getUnboundListener
in interfaceISessionStore
- Returns:
- The list of registered unbound listeners
-
registerBindListener
public void registerBindListener(ISessionStore.BindListener listener)
Registers listener invoked when session is bound.- Specified by:
registerBindListener
in interfaceISessionStore
- Parameters:
listener
-
-
unregisterBindListener
public void unregisterBindListener(ISessionStore.BindListener listener)
Unregisters listener invoked when session is bound.- Specified by:
unregisterBindListener
in interfaceISessionStore
- Parameters:
listener
-
-
getBindListeners
public Set<ISessionStore.BindListener> getBindListeners()
- Specified by:
getBindListeners
in interfaceISessionStore
- Returns:
- The list of registered bind listeners
-
-