|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.catalina.session.StandardSession
Standard implementation of the Session interface. This object is serializable, so that it can be stored in persistent storage or transferred to a different JVM for distributable session support.
IMPLEMENTATION NOTE: An instance of this class represents both the
internal (Session) and application level (HttpSession) view of the session.
However, because the class itself is not declared public, Java logic outside
of the org.apache.catalina.session
package cannot cast an
HttpSession view of this instance back to a Session view.
IMPLEMENTATION NOTE: If you add fields to this class, you must make sure that you carry them over in the read/writeObject methods so that this class is properly serialized.
Field Summary | |
protected int |
accessCount
The access count for this session. |
protected java.util.Map |
attributes
The collection of user data attributes associated with this Session. |
protected java.lang.String |
authType
The authentication type used to authenticate our cached Principal, if any. |
protected java.lang.reflect.Method |
containerEventMethod
The java.lang.Method for the
fireContainerEvent() method of the
org.apache.catalina.core.StandardContext method,
if our Context implementation is of this class. |
protected static java.lang.Class[] |
containerEventTypes
The method signature for the fireContainerEvent method. |
protected long |
creationTime
The time this session was created, in milliseconds since midnight, January 1, 1970 GMT. |
protected static java.lang.String[] |
EMPTY_ARRAY
Type array. |
protected boolean |
expiring
We are currently processing a session expiration, so bypass certain IllegalStateException tests. |
protected StandardSessionFacade |
facade
The facade associated with this session. |
protected java.lang.String |
id
The session identifier of this Session. |
protected static java.lang.String |
info
Descriptive information describing this Session implementation. |
protected boolean |
isNew
Flag indicating whether this session is new or not. |
protected boolean |
isValid
Flag indicating whether this session is valid or not. |
protected long |
lastAccessedTime
The last accessed time for this Session. |
protected java.util.ArrayList |
listeners
The session event listeners for this Session. |
protected Manager |
manager
The Manager with which this Session is associated. |
protected int |
maxInactiveInterval
The maximum time interval, in seconds, between client requests before the servlet container may invalidate this session. |
protected static java.lang.String |
NOT_SERIALIZED
The dummy attribute value serialized when a NotSerializableException is encountered in writeObject() . |
protected java.util.Map |
notes
Internal notes associated with this session by Catalina components and event listeners. |
protected java.security.Principal |
principal
The authenticated Principal associated with this session, if any. |
protected static javax.servlet.http.HttpSessionContext |
sessionContext
The HTTP session context associated with this session. |
protected static StringManager |
sm
The string manager for this package. |
protected java.beans.PropertyChangeSupport |
support
The property change support for this component. |
protected long |
thisAccessedTime
The current accessed time for this session. |
Fields inherited from interface org.apache.catalina.Session |
SESSION_ACTIVATED_EVENT, SESSION_CREATED_EVENT, SESSION_DESTROYED_EVENT, SESSION_PASSIVATED_EVENT |
Constructor Summary | |
StandardSession(Manager manager)
Construct a new Session associated with the specified Manager. |
Method Summary | |
void |
access()
Update the accessed time information for this session. |
void |
activate()
Perform internal processing required to activate this session. |
void |
addSessionListener(SessionListener listener)
Add a session event listener to this component. |
void |
endAccess()
End the access. |
protected void |
evaluateIfValid()
|
protected boolean |
exclude(java.lang.String name)
Exclude attribute that cannot be serialized. |
void |
expire()
Perform the internal processing required to invalidate this session, without triggering an exception if the session has already expired. |
void |
expire(boolean notify)
Perform the internal processing required to invalidate this session, without triggering an exception if the session has already expired. |
protected void |
fireContainerEvent(Context context,
java.lang.String type,
java.lang.Object data)
Fire container events if the Context implementation is the org.apache.catalina.core.StandardContext . |
void |
fireSessionEvent(java.lang.String type,
java.lang.Object data)
Notify all session event listeners that a particular event has occurred for this Session. |
java.lang.Object |
getAttribute(java.lang.String name)
Return the object bound with the specified name in this session, or null if no object is bound with that name. |
java.util.Enumeration |
getAttributeNames()
Return an Enumeration of String objects
containing the names of the objects bound to this session. |
java.lang.String |
getAuthType()
Return the authentication type used to authenticate our cached Principal, if any. |
long |
getCreationTime()
Return the time when this session was created, in milliseconds since midnight, January 1, 1970 GMT. |
java.lang.String |
getId()
Return the session identifier for this session. |
java.lang.String |
getIdInternal()
Return the session identifier for this session. |
java.lang.String |
getInfo()
Return descriptive information about this Session implementation and the corresponding version number, in the format <description>/<version> . |
long |
getLastAccessedTime()
Return the last time the client sent a request associated with this session, as the number of milliseconds since midnight, January 1, 1970 GMT. |
long |
getLastAccessedTimeInternal()
Return the last client access time without invalidation check |
Manager |
getManager()
Return the Manager within which this Session is valid. |
int |
getMaxInactiveInterval()
Return the maximum time interval, in seconds, between client requests before the servlet container will invalidate the session. |
java.lang.Object |
getNote(java.lang.String name)
Return the object bound with the specified name to the internal notes for this session, or null if no such binding exists. |
java.util.Iterator |
getNoteNames()
Return an Iterator containing the String names of all notes bindings that exist for this session. |
java.security.Principal |
getPrincipal()
Return the authenticated Principal that is associated with this Session. |
javax.servlet.ServletContext |
getServletContext()
Return the ServletContext to which this session belongs. |
javax.servlet.http.HttpSession |
getSession()
Return the HttpSession for which this object
is the facade. |
javax.servlet.http.HttpSessionContext |
getSessionContext()
Deprecated. As of Version 2.1, this method is deprecated and has no replacement. It will be removed in a future version of the Java Servlet API. |
java.lang.Object |
getValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by getAttribute() |
java.lang.String[] |
getValueNames()
Deprecated. As of Version 2.2, this method is replaced by getAttributeNames() |
void |
invalidate()
Invalidates this session and unbinds any objects bound to it. |
boolean |
isNew()
Return true if the client does not yet know about the
session, or if the client chooses not to join the session. |
boolean |
isValid()
Return the isValid flag for this session. |
protected java.lang.String[] |
keys()
Return the names of all currently defined session attributes as an array of Strings. |
void |
passivate()
Perform the internal processing required to passivate this session. |
void |
putValue(java.lang.String name,
java.lang.Object value)
Deprecated. As of Version 2.2, this method is replaced by setAttribute() |
void |
readObjectData(java.io.ObjectInputStream stream)
Read a serialized version of the contents of this session object from the specified object input stream, without requiring that the StandardSession itself have been serialized. |
void |
recycle()
Release all object references, and initialize instance variables, in preparation for reuse of this object. |
void |
removeAttribute(java.lang.String name)
Remove the object bound with the specified name from this session. |
void |
removeAttribute(java.lang.String name,
boolean notify)
Remove the object bound with the specified name from this session. |
protected void |
removeAttributeInternal(java.lang.String name,
boolean notify)
Remove the object bound with the specified name from this session. |
void |
removeNote(java.lang.String name)
Remove any object bound to the specified name in the internal notes for this session. |
void |
removeSessionListener(SessionListener listener)
Remove a session event listener from this component. |
void |
removeValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by removeAttribute() |
void |
setAttribute(java.lang.String name,
java.lang.Object value)
Bind an object to this session, using the specified name. |
void |
setAttribute(java.lang.String name,
java.lang.Object value,
boolean notify)
|
void |
setAuthType(java.lang.String authType)
Set the authentication type used to authenticate our cached Principal, if any. |
void |
setCreationTime(long time)
Set the creation time for this session. |
void |
setId(java.lang.String id)
Set the session identifier for this session. |
void |
setId(java.lang.String id,
boolean notify)
Set the session identifier for this session and optionally notifies any associated listeners that a new session has been created. |
void |
setManager(Manager manager)
Set the Manager within which this Session is valid. |
void |
setMaxInactiveInterval(int interval)
Set the maximum time interval, in seconds, between client requests before the servlet container will invalidate the session. |
void |
setNew(boolean isNew)
Set the isNew flag for this session. |
void |
setNote(java.lang.String name,
java.lang.Object value)
Bind an object to a specified name in the internal notes associated with this session, replacing any existing binding for this name. |
void |
setPrincipal(java.security.Principal principal)
Set the authenticated Principal that is associated with this Session. |
void |
setValid(boolean isValid)
Set the isValid flag for this session. |
void |
tellNew()
Inform the listeners about the new session. |
java.lang.String |
toString()
Return a string representation of this object. |
void |
writeObjectData(java.io.ObjectOutputStream stream)
Write a serialized version of the contents of this session object to the specified object output stream, without requiring that the StandardSession itself have been serialized. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected static final java.lang.String[] EMPTY_ARRAY
protected static final java.lang.String NOT_SERIALIZED
writeObject()
.
protected java.util.Map attributes
protected transient java.lang.String authType
protected transient java.lang.reflect.Method containerEventMethod
java.lang.Method
for the
fireContainerEvent()
method of the
org.apache.catalina.core.StandardContext
method,
if our Context implementation is of this class. This value is
computed dynamically the first time it is needed, or after
a session reload (since it is declared transient).
protected static final java.lang.Class[] containerEventTypes
fireContainerEvent
method.
protected long creationTime
protected transient volatile boolean expiring
protected transient StandardSessionFacade facade
protected java.lang.String id
protected static final java.lang.String info
protected volatile long lastAccessedTime
protected transient java.util.ArrayList listeners
protected transient Manager manager
protected int maxInactiveInterval
protected boolean isNew
protected volatile boolean isValid
protected transient java.util.Map notes
protected transient java.security.Principal principal
protected static StringManager sm
protected static javax.servlet.http.HttpSessionContext sessionContext
protected transient java.beans.PropertyChangeSupport support
protected volatile long thisAccessedTime
protected transient volatile int accessCount
Constructor Detail |
public StandardSession(Manager manager)
manager
- The manager with which this Session is associatedMethod Detail |
public java.lang.String getAuthType()
getAuthType
in interface Session
public void setAuthType(java.lang.String authType)
setAuthType
in interface Session
authType
- The new cached authentication typepublic void setCreationTime(long time)
setCreationTime
in interface Session
time
- The new creation timepublic java.lang.String getId()
getId
in interface javax.servlet.http.HttpSession
public java.lang.String getIdInternal()
getIdInternal
in interface Session
public void setId(java.lang.String id)
setId
in interface Session
id
- The new session identifierpublic void setId(java.lang.String id, boolean notify)
Session
setId
in interface Session
id
- The new session identifiernotify
- Should any associated listeners be notified that a new
session has been created?public void tellNew()
public java.lang.String getInfo()
<description>/<version>
.
getInfo
in interface Session
public long getLastAccessedTime()
getLastAccessedTime
in interface javax.servlet.http.HttpSession
public long getLastAccessedTimeInternal()
getLastAccessedTimeInternal
in interface Session
getLastAccessedTime().
public Manager getManager()
getManager
in interface Session
public void setManager(Manager manager)
setManager
in interface Session
manager
- The new Managerpublic int getMaxInactiveInterval()
getMaxInactiveInterval
in interface javax.servlet.http.HttpSession
public void setMaxInactiveInterval(int interval)
setMaxInactiveInterval
in interface javax.servlet.http.HttpSession
interval
- The new maximum intervalpublic void setNew(boolean isNew)
isNew
flag for this session.
setNew
in interface Session
isNew
- The new value for the isNew
flagpublic java.security.Principal getPrincipal()
Authenticator
with a means to cache a
previously authenticated Principal, and avoid potentially expensive
Realm.authenticate()
calls on every request. If there
is no current associated Principal, return null
.
getPrincipal
in interface Session
public void setPrincipal(java.security.Principal principal)
Authenticator
with a means to cache a
previously authenticated Principal, and avoid potentially expensive
Realm.authenticate()
calls on every request.
setPrincipal
in interface Session
principal
- The new Principal, or null
if nonepublic javax.servlet.http.HttpSession getSession()
HttpSession
for which this object
is the facade.
getSession
in interface Session
public boolean isValid()
isValid
flag for this session.
isValid
in interface Session
public void setValid(boolean isValid)
isValid
flag for this session.
setValid
in interface Session
isValid
- The new value for the isValid
flagpublic void access()
access
in interface Session
public void endAccess()
endAccess
in interface Session
public void addSessionListener(SessionListener listener)
addSessionListener
in interface Session
public void expire()
expire
in interface Session
public void expire(boolean notify)
notify
- Should we notify listeners about the demise of
this session?public void passivate()
public void activate()
public java.lang.Object getNote(java.lang.String name)
null
if no such binding exists.
getNote
in interface Session
name
- Name of the note to be returnedpublic java.util.Iterator getNoteNames()
getNoteNames
in interface Session
public void recycle()
recycle
in interface Session
public void removeNote(java.lang.String name)
removeNote
in interface Session
name
- Name of the note to be removedpublic void removeSessionListener(SessionListener listener)
removeSessionListener
in interface Session
public void setNote(java.lang.String name, java.lang.Object value)
setNote
in interface Session
name
- Name to which the object should be boundvalue
- Object to be bound to the specified namepublic java.lang.String toString()
public void readObjectData(java.io.ObjectInputStream stream) throws java.lang.ClassNotFoundException, java.io.IOException
stream
- The object input stream to read from
java.lang.ClassNotFoundException
- if an unknown class is specified
java.io.IOException
- if an input/output error occurspublic void writeObjectData(java.io.ObjectOutputStream stream) throws java.io.IOException
stream
- The object output stream to write to
java.io.IOException
- if an input/output error occurspublic long getCreationTime()
getCreationTime
in interface javax.servlet.http.HttpSession
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic javax.servlet.ServletContext getServletContext()
getServletContext
in interface javax.servlet.http.HttpSession
public javax.servlet.http.HttpSessionContext getSessionContext()
getSessionContext
in interface javax.servlet.http.HttpSession
public java.lang.Object getAttribute(java.lang.String name)
null
if no object is bound with that name.
getAttribute
in interface javax.servlet.http.HttpSession
name
- Name of the attribute to be returned
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic java.util.Enumeration getAttributeNames()
Enumeration
of String
objects
containing the names of the objects bound to this session.
getAttributeNames
in interface javax.servlet.http.HttpSession
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic java.lang.Object getValue(java.lang.String name)
getAttribute()
null
if no object is bound with that name.
getValue
in interface javax.servlet.http.HttpSession
name
- Name of the value to be returned
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic java.lang.String[] getValueNames()
getAttributeNames()
getValueNames
in interface javax.servlet.http.HttpSession
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void invalidate()
invalidate
in interface javax.servlet.http.HttpSession
java.lang.IllegalStateException
- if this method is called on
an invalidated sessionpublic boolean isNew()
true
if the client does not yet know about the
session, or if the client chooses not to join the session. For
example, if the server used only cookie-based sessions, and the client
has disabled the use of cookies, then a session would be new on each
request.
isNew
in interface javax.servlet.http.HttpSession
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void putValue(java.lang.String name, java.lang.Object value)
setAttribute()
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueBound()
on the object.
putValue
in interface javax.servlet.http.HttpSession
name
- Name to which the object is bound, cannot be nullvalue
- Object to be bound, cannot be null
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void removeAttribute(java.lang.String name)
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueUnbound()
on the object.
removeAttribute
in interface javax.servlet.http.HttpSession
name
- Name of the object to remove from this session.
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void removeAttribute(java.lang.String name, boolean notify)
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueUnbound()
on the object.
name
- Name of the object to remove from this session.notify
- Should we notify interested listeners that this
attribute is being removed?
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void removeValue(java.lang.String name)
removeAttribute()
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueUnbound()
on the object.
removeValue
in interface javax.servlet.http.HttpSession
name
- Name of the object to remove from this session.
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void setAttribute(java.lang.String name, java.lang.Object value)
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueBound()
on the object.
setAttribute
in interface javax.servlet.http.HttpSession
name
- Name to which the object is bound, cannot be nullvalue
- Object to be bound, cannot be null
java.lang.IllegalArgumentException
- if an attempt is made to add a
non-serializable object in an environment marked distributable.
java.lang.IllegalStateException
- if this method is called on an
invalidated sessionpublic void setAttribute(java.lang.String name, java.lang.Object value, boolean notify)
protected boolean exclude(java.lang.String name)
name
- the attribute's nameprotected void evaluateIfValid()
protected void fireContainerEvent(Context context, java.lang.String type, java.lang.Object data) throws java.lang.Exception
org.apache.catalina.core.StandardContext
.
context
- Context for which to fire eventstype
- Event typedata
- Event data
java.lang.Exception
- occurred during event firingpublic void fireSessionEvent(java.lang.String type, java.lang.Object data)
type
- Event typedata
- Event dataprotected java.lang.String[] keys()
protected void removeAttributeInternal(java.lang.String name, boolean notify)
After this method executes, and if the object implements
HttpSessionBindingListener
, the container calls
valueUnbound()
on the object.
name
- Name of the object to remove from this session.notify
- Should we notify interested listeners that this
attribute is being removed?
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |