public class Session extends Object implements SessionHandler.SessionIf
SessionCache
. 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.
The SessionHandler
coordinates
the lifecycle of Session objects with the help of the SessionCache.SessionHandler
,
SessionIdManager
Modifier and Type | Class and Description |
---|---|
class |
Session.SessionInactivityTimeout
SessionInactivityTimeout
Each Session has a timer associated with it that fires whenever
it has been idle (ie not referenced by a request) for a
configurable amount of time, or the Session expires.
|
static class |
Session.State
State
Validity states of a session
|
Modifier and Type | Field and Description |
---|---|
protected String |
_extendedId |
protected SessionHandler |
_handler |
protected boolean |
_idChanged |
protected Locker |
_lock |
protected boolean |
_newSession |
protected long |
_requests |
protected boolean |
_resident |
protected SessionData |
_sessionData |
protected Session.SessionInactivityTimeout |
_sessionInactivityTimer |
protected Session.State |
_state |
static String |
SESSION_CREATED_SECURE |
Constructor and Description |
---|
Session(SessionHandler handler,
HttpServletRequest request,
SessionData data)
Create a new session
|
Session(SessionHandler handler,
SessionData data)
Re-inflate an existing session from some eg persistent store.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
access(long time) |
protected boolean |
beginInvalidate() |
void |
bindValue(String name,
Object value)
Bind value if value implements
HttpSessionBindingListener (calls HttpSessionBindingListener.valueBound(HttpSessionBindingEvent) ) |
protected void |
callSessionAttributeListeners(String name,
Object newValue,
Object oldValue)
Call binding and attribute listeners based on the new and old
values of the attribute.
|
protected void |
checkLocked() |
protected void |
checkValidForRead()
Chech that the session data can be read.
|
protected void |
checkValidForWrite()
Check that the session can be modified.
|
protected void |
complete() |
protected void |
cookieSet() |
void |
didActivate()
Call the activation listeners.
|
protected void |
doInvalidate()
Deprecated.
|
protected void |
finishInvalidate()
Call HttpSessionAttributeListeners as part of invalidating
a Session.
|
Object |
getAttribute(String name) |
Enumeration<String> |
getAttributeNames() |
int |
getAttributes() |
String |
getContextPath() |
long |
getCookieSetTime() |
long |
getCreationTime() |
String |
getExtendedId() |
String |
getId() |
long |
getLastAccessedTime() |
int |
getMaxInactiveInterval() |
Set<String> |
getNames() |
long |
getRequests()
Returns the current number of requests that are active in the
Session.
|
ServletContext |
getServletContext() |
Session |
getSession() |
HttpSessionContext |
getSessionContext()
Deprecated.
|
protected SessionData |
getSessionData() |
SessionHandler |
getSessionHandler() |
Object |
getValue(String name)
Deprecated.
|
String[] |
getValueNames()
Deprecated.
As of Version 2.2, this method is replaced by
getAttributeNames() |
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 session
|
protected boolean |
isExpiredAt(long time)
Check to see if session has expired as at the time given.
|
boolean |
isIdChanged() |
protected boolean |
isIdleLongerThan(int sec)
Check if the Session has been idle longer than a number of seconds.
|
boolean |
isNew() |
boolean |
isResident() |
boolean |
isValid() |
Locker.Lock |
lock()
Grab the lock on the session
|
Locker.Lock |
lockIfNotHeld()
Grab the lock on the session if it isn't locked already
|
void |
putValue(String name,
Object value)
Deprecated.
|
void |
removeAttribute(String name) |
void |
removeValue(String name)
Deprecated.
|
void |
renewId(HttpServletRequest request)
Force a change to the id of a session.
|
void |
setAttribute(String name,
Object value) |
void |
setExtendedId(String extendedId) |
void |
setIdChanged(boolean changed) |
void |
setMaxInactiveInterval(int secs) |
void |
setResident(boolean resident) |
void |
stopInactivityTimer() |
void |
unbindValue(String name,
Object value)
Unbind value if value implements
HttpSessionBindingListener (calls HttpSessionBindingListener.valueUnbound(HttpSessionBindingEvent) ) |
void |
updateInactivityTimer()
Set the inactivity timer to the smaller of the session maxInactivity
(ie session-timeout from web.xml), or the inactive eviction time.
|
void |
willPassivate()
Call the passivation listeners.
|
public static final String SESSION_CREATED_SECURE
protected SessionData _sessionData
protected SessionHandler _handler
protected String _extendedId
protected long _requests
protected boolean _idChanged
protected boolean _newSession
protected Session.State _state
protected Locker _lock
protected boolean _resident
protected Session.SessionInactivityTimeout _sessionInactivityTimer
public Session(SessionHandler handler, HttpServletRequest request, SessionData data)
handler
- the SessionHandler that manages this sessionrequest
- the request the session should be based ondata
- the session datapublic Session(SessionHandler handler, SessionData data)
handler
- the SessionHandler managing the sessiondata
- the session datapublic long getRequests()
public void setExtendedId(String extendedId)
protected void cookieSet()
protected boolean access(long time)
protected void complete()
protected boolean isExpiredAt(long time)
time
- the time since the epoch in msprotected boolean isIdleLongerThan(int sec)
sec
- the number of secondsprotected void callSessionAttributeListeners(String name, Object newValue, Object oldValue)
name
- name of the attributenewValue
- new value of the attributeoldValue
- previous value of the attributepublic void unbindValue(String name, Object value)
HttpSessionBindingListener
(calls HttpSessionBindingListener.valueUnbound(HttpSessionBindingEvent)
)name
- the name with which the object is bound or unboundvalue
- the bound valuepublic void bindValue(String name, Object value)
HttpSessionBindingListener
(calls HttpSessionBindingListener.valueBound(HttpSessionBindingEvent)
)name
- the name with which the object is bound or unboundvalue
- the bound valuepublic void didActivate()
public void willPassivate()
public boolean isValid()
public long getCookieSetTime()
public long getCreationTime() throws IllegalStateException
getCreationTime
in interface HttpSession
IllegalStateException
public String getId()
getId
in interface HttpSession
HttpSession.getId()
public String getExtendedId()
public String getContextPath()
public String getVHost()
public long getLastAccessedTime()
getLastAccessedTime
in interface HttpSession
HttpSession.getLastAccessedTime()
public ServletContext getServletContext()
getServletContext
in interface HttpSession
HttpSession.getServletContext()
public void setMaxInactiveInterval(int secs)
setMaxInactiveInterval
in interface HttpSession
HttpSession.setMaxInactiveInterval(int)
public void updateInactivityTimer()
public void stopInactivityTimer()
public int getMaxInactiveInterval()
getMaxInactiveInterval
in interface HttpSession
HttpSession.getMaxInactiveInterval()
@Deprecated public HttpSessionContext getSessionContext()
getSessionContext
in interface HttpSession
HttpSession.getSessionContext()
public SessionHandler getSessionHandler()
protected void checkValidForWrite() throws IllegalStateException
IllegalStateException
- if the session is invalidprotected void checkValidForRead() throws IllegalStateException
IllegalStateException
- if the session is invalidprotected void checkLocked() throws IllegalStateException
IllegalStateException
public Object getAttribute(String name)
getAttribute
in interface HttpSession
HttpSession.getAttribute(java.lang.String)
@Deprecated public Object getValue(String name)
getValue
in interface HttpSession
HttpSession.getValue(java.lang.String)
public Enumeration<String> getAttributeNames()
getAttributeNames
in interface HttpSession
HttpSession.getAttributeNames()
public int getAttributes()
@Deprecated public String[] getValueNames() throws IllegalStateException
getAttributeNames()
getValueNames
in interface HttpSession
IllegalStateException
public void setAttribute(String name, Object value)
setAttribute
in interface HttpSession
HttpSession.setAttribute(java.lang.String, java.lang.Object)
@Deprecated public void putValue(String name, Object value)
putValue
in interface HttpSession
HttpSession.putValue(java.lang.String, java.lang.Object)
public void removeAttribute(String name)
removeAttribute
in interface HttpSession
HttpSession.removeAttribute(java.lang.String)
@Deprecated public void removeValue(String name)
removeValue
in interface HttpSession
HttpSession.removeValue(java.lang.String)
public void renewId(HttpServletRequest request)
request
- the Request associated with the call to change id.public void invalidate()
invalidate
in interface HttpSession
HttpSession.invalidate()
public Locker.Lock lock()
public Locker.Lock lockIfNotHeld()
protected boolean beginInvalidate()
@Deprecated protected void doInvalidate() throws IllegalStateException
IllegalStateException
protected void finishInvalidate() throws IllegalStateException
IllegalStateException
public boolean isNew() throws IllegalStateException
isNew
in interface HttpSession
IllegalStateException
public void setIdChanged(boolean changed)
public boolean isIdChanged()
public Session getSession()
getSession
in interface SessionHandler.SessionIf
protected SessionData getSessionData()
public void setResident(boolean resident)
public boolean isResident()
Copyright © 1995–2017 Webtide. All rights reserved.