Package org.eclipse.jetty.server.session
Class Session
- java.lang.Object
-
- org.eclipse.jetty.server.session.Session
-
- All Implemented Interfaces:
HttpSession
,SessionHandler.SessionIf
public class Session extends java.lang.Object implements SessionHandler.SessionIf
Session A heavy-weight Session object representing an HttpSession. Session objects relating to a context are kept in aSessionCache
. The purpose of the SessionCache is to keep the working set of Session objects in memory so that they may be accessed quickly, and facilitate the sharing of a Session object amongst multiple simultaneous requests referring to the same session id. TheSessionHandler
coordinates the lifecycle of Session objects with the help of the SessionCache.- See Also:
SessionHandler
,SessionIdManager
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Session.IdState
class
Session.SessionInactivityTimer
SessionInactivityTimer Each Session has a timer associated with it that fires whenever it has been idle (ie not accessed by a request) for a configurable amount of time, or the Session expires.static class
Session.State
State Validity states of a session
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
SESSION_CREATED_SECURE
-
Constructor Summary
Constructors Constructor Description Session(SessionHandler handler, HttpServletRequest request, SessionData data)
Create a new sessionSession(SessionHandler handler, SessionData data)
Re-inflate an existing session from some eg persistent store.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
bindValue(java.lang.String name, java.lang.Object value)
Bind value if value implementsHttpSessionBindingListener
(callsHttpSessionBindingListener.valueBound(HttpSessionBindingEvent)
)long
calculateInactivityTimeout(long now)
Calculate what the session timer setting should be based on: the time remaining before the session expires and any idle eviction time configured.void
didActivate()
Call the activation listeners.java.lang.Object
getAttribute(java.lang.String name)
java.util.Enumeration<java.lang.String>
getAttributeNames()
int
getAttributes()
java.lang.String
getContextPath()
long
getCookieSetTime()
long
getCreationTime()
java.lang.String
getExtendedId()
java.lang.String
getId()
long
getLastAccessedTime()
int
getMaxInactiveInterval()
java.util.Set<java.lang.String>
getNames()
long
getRequests()
Returns the current number of requests that are active in the Session.ServletContext
getServletContext()
Session
getSession()
HttpSessionContext
getSessionContext()
Deprecated.SessionHandler
getSessionHandler()
java.lang.Object
getValue(java.lang.String name)
Deprecated.java.lang.String[]
getValueNames()
Deprecated.As of Version 2.2, this method is replaced bygetAttributeNames()
java.lang.String
getVHost()
void
invalidate()
Called by users to invalidate a session, or called by the access method as a request enters the session if the session has expired, or called by manager as a result of scavenger expiring sessionboolean
isChanging()
boolean
isIdChanged()
boolean
isInvalid()
boolean
isNew()
boolean
isResident()
boolean
isValid()
Locker.Lock
lock()
Grab the lock on the sessionvoid
putValue(java.lang.String name, java.lang.Object value)
Deprecated.void
removeAttribute(java.lang.String name)
void
removeValue(java.lang.String name)
Deprecated.void
renewId(HttpServletRequest request)
Force a change to the id of a session.void
setAttribute(java.lang.String name, java.lang.Object value)
void
setExtendedId(java.lang.String extendedId)
void
setIdChanged(boolean changed)
void
setMaxInactiveInterval(int secs)
void
setResident(boolean resident)
java.lang.String
toString()
void
unbindValue(java.lang.String name, java.lang.Object value)
Unbind value if value implementsHttpSessionBindingListener
(callsHttpSessionBindingListener.valueUnbound(HttpSessionBindingEvent)
)void
updateInactivityTimer()
Deprecated.void
willPassivate()
Call the passivation listeners.
-
-
-
Field Detail
-
SESSION_CREATED_SECURE
public static final java.lang.String SESSION_CREATED_SECURE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Session
public Session(SessionHandler handler, HttpServletRequest request, SessionData data)
Create a new session- Parameters:
handler
- the SessionHandler that manages this sessionrequest
- the request the session should be based ondata
- the session data
-
Session
public Session(SessionHandler handler, SessionData data)
Re-inflate an existing session from some eg persistent store.- Parameters:
handler
- the SessionHandler managing the sessiondata
- the session data
-
-
Method Detail
-
getRequests
public long getRequests()
Returns the current number of requests that are active in the Session.- Returns:
- the number of active requests for this session
-
setExtendedId
public void setExtendedId(java.lang.String extendedId)
-
unbindValue
public void unbindValue(java.lang.String name, java.lang.Object value)
Unbind value if value implementsHttpSessionBindingListener
(callsHttpSessionBindingListener.valueUnbound(HttpSessionBindingEvent)
)- Parameters:
name
- the name with which the object is bound or unboundvalue
- the bound value
-
bindValue
public void bindValue(java.lang.String name, java.lang.Object value)
Bind value if value implementsHttpSessionBindingListener
(callsHttpSessionBindingListener.valueBound(HttpSessionBindingEvent)
)- Parameters:
name
- the name with which the object is bound or unboundvalue
- the bound value
-
didActivate
public void didActivate()
Call the activation listeners. This must be called holding the lock.
-
willPassivate
public void willPassivate()
Call the passivation listeners. This must be called holding the lock
-
isValid
public boolean isValid()
-
isInvalid
public boolean isInvalid()
-
isChanging
public boolean isChanging()
-
getCookieSetTime
public long getCookieSetTime()
-
getCreationTime
public long getCreationTime() throws java.lang.IllegalStateException
- Specified by:
getCreationTime
in interfaceHttpSession
- Throws:
java.lang.IllegalStateException
-
getId
public java.lang.String getId()
- Specified by:
getId
in interfaceHttpSession
- See Also:
HttpSession.getId()
-
getExtendedId
public java.lang.String getExtendedId()
-
getContextPath
public java.lang.String getContextPath()
-
getVHost
public java.lang.String getVHost()
-
getLastAccessedTime
public long getLastAccessedTime()
- Specified by:
getLastAccessedTime
in interfaceHttpSession
- See Also:
HttpSession.getLastAccessedTime()
-
getServletContext
public ServletContext getServletContext()
- Specified by:
getServletContext
in interfaceHttpSession
- See Also:
HttpSession.getServletContext()
-
setMaxInactiveInterval
public void setMaxInactiveInterval(int secs)
- Specified by:
setMaxInactiveInterval
in interfaceHttpSession
- See Also:
HttpSession.setMaxInactiveInterval(int)
-
updateInactivityTimer
@Deprecated public void updateInactivityTimer()
Deprecated.
-
calculateInactivityTimeout
public long calculateInactivityTimeout(long now)
Calculate what the session timer setting should be based on: the time remaining before the session expires and any idle eviction time configured. The timer value will be the lesser of the above.- Parameters:
now
- the time at which to calculate remaining expiry- Returns:
- the time remaining before expiry or inactivity timeout
-
getMaxInactiveInterval
public int getMaxInactiveInterval()
- Specified by:
getMaxInactiveInterval
in interfaceHttpSession
- See Also:
HttpSession.getMaxInactiveInterval()
-
getSessionContext
@Deprecated public HttpSessionContext getSessionContext()
Deprecated.- Specified by:
getSessionContext
in interfaceHttpSession
- See Also:
HttpSession.getSessionContext()
-
getSessionHandler
public SessionHandler getSessionHandler()
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
- Specified by:
getAttribute
in interfaceHttpSession
- See Also:
HttpSession.getAttribute(java.lang.String)
-
getValue
@Deprecated public java.lang.Object getValue(java.lang.String name)
Deprecated.- Specified by:
getValue
in interfaceHttpSession
- See Also:
HttpSession.getValue(java.lang.String)
-
getAttributeNames
public java.util.Enumeration<java.lang.String> getAttributeNames()
- Specified by:
getAttributeNames
in interfaceHttpSession
- See Also:
HttpSession.getAttributeNames()
-
getAttributes
public int getAttributes()
-
getNames
public java.util.Set<java.lang.String> getNames()
-
getValueNames
@Deprecated public java.lang.String[] getValueNames() throws java.lang.IllegalStateException
Deprecated.As of Version 2.2, this method is replaced bygetAttributeNames()
- Specified by:
getValueNames
in interfaceHttpSession
- Throws:
java.lang.IllegalStateException
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.Object value)
- Specified by:
setAttribute
in interfaceHttpSession
- See Also:
HttpSession.setAttribute(java.lang.String, java.lang.Object)
-
putValue
@Deprecated public void putValue(java.lang.String name, java.lang.Object value)
Deprecated.- Specified by:
putValue
in interfaceHttpSession
- See Also:
HttpSession.putValue(java.lang.String, java.lang.Object)
-
removeAttribute
public void removeAttribute(java.lang.String name)
- Specified by:
removeAttribute
in interfaceHttpSession
- See Also:
HttpSession.removeAttribute(java.lang.String)
-
removeValue
@Deprecated public void removeValue(java.lang.String name)
Deprecated.- Specified by:
removeValue
in interfaceHttpSession
- See Also:
HttpSession.removeValue(java.lang.String)
-
renewId
public void renewId(HttpServletRequest request)
Force a change to the id of a session.- Parameters:
request
- the Request associated with the call to change id.
-
invalidate
public void invalidate()
Called by users to invalidate a session, or called by the access method as a request enters the session if the session has expired, or called by manager as a result of scavenger expiring session- Specified by:
invalidate
in interfaceHttpSession
- See Also:
HttpSession.invalidate()
-
lock
public Locker.Lock lock()
Grab the lock on the session- Returns:
- the lock
-
isNew
public boolean isNew() throws java.lang.IllegalStateException
- Specified by:
isNew
in interfaceHttpSession
- Throws:
java.lang.IllegalStateException
-
setIdChanged
public void setIdChanged(boolean changed)
-
isIdChanged
public boolean isIdChanged()
-
getSession
public Session getSession()
- Specified by:
getSession
in interfaceSessionHandler.SessionIf
-
setResident
public void setResident(boolean resident)
-
isResident
public boolean isResident()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-