javax.servlet.http
Interface HttpSession


public abstract interface HttpSession

A HttpSession holds session-dependant data on the server side. A servlet can request the servlet by using HttpServletRequest.getSession(...)

The handling of the Session objects is a job done by the server and servlets together.

As follows:
The server maintaines the set of HttpSessions.
The server creates HttpSession on request by a servlet
The server removes all invalidated HttpSessions
The server connects an incoming request with its HttpSession (usually done using cookies)
Servlets manipulate the contents of the HttpSession by adding and removing items.
Servlets ask the server to remove HttpSessions by invalidating them

Since:
Servlet API 2.0
Version:
Servlet API 2.1

Method Summary
 long getCreationTime()
          Gets this session's creation time in seconds since january 1st 1970.
 java.lang.String getId()
          Gets the unique session id.
 long getLastAccessedTime()
          Gets the number of seconds since the previous access of this session.
 int getMaxInactiveInterval()
          Returns the minimum time this session will be kept alive by the server when it doesn't get accessed by a client.
 HttpSessionContext getSessionContext()
          Deprecated. HttpSessionContext has been depricated for security reasons.
 java.lang.Object getValue(java.lang.String name)
          Gets a object from the set of name/value pairs in the session.
 java.lang.String[] getValueNames()
          Get a list of all item names in the session.
 void invalidate()
          Make this HttpSession unavailable for use by other servlets and tell the server to remove this session.
 boolean isNew()
          Returns whether this session has been freshly created.
 void putValue(java.lang.String name, java.lang.Object value)
          Puts a name and value in the HttpSession.
 void removeValue(java.lang.String name)
          Removes an item from the session.
 void setMaxInactiveInterval(int interval)
          Sets the minimum time this session will be kept alive by the server when it doesn't get accessed by a client.
Note: hmmm, should an interval of -1 mean that it should live forever?
 

Method Detail

getCreationTime

public long getCreationTime()
                     throws java.lang.IllegalStateException
Gets this session's creation time in seconds since january 1st 1970.
Returns:
a number of seconds
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

getId

public java.lang.String getId()
                       throws java.lang.IllegalStateException
Gets the unique session id. Every HttpSession has a Id that is unique for this (virtual) http server.
Returns:
The Id
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

getLastAccessedTime

public long getLastAccessedTime()
                         throws java.lang.IllegalStateException
Gets the number of seconds since the previous access of this session. Every time a client's request comes in the server checks (usually by using cookies) which HttpSession object corresponds with this particular client. The server then sets the lastAccessedTime to the current time. (And the isNew flag to false.) If the client has never requested anything with this Session then this method returns -1
Returns:
number of seconds since last access or -1
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

getMaxInactiveInterval

public int getMaxInactiveInterval()
                           throws java.lang.IllegalStateException
Returns the minimum time this session will be kept alive by the server when it doesn't get accessed by a client.
Since:
Servlet API 2.1

getValue

public java.lang.Object getValue(java.lang.String name)
                          throws java.lang.IllegalStateException
Gets a object from the set of name/value pairs in the session.
Parameters:
name - the name of the item required
Returns:
the value of the item. null if not present.
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

getValueNames

public java.lang.String[] getValueNames()
                                 throws java.lang.IllegalStateException
Get a list of all item names in the session.
Returns:
An array of Strings containing all item names.
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

invalidate

public void invalidate()
                throws java.lang.IllegalStateException
Make this HttpSession unavailable for use by other servlets and tell the server to remove this session. All values bound to this session with putValue() that implement HttpSessionBindingListener will be called with valueUnbound(). Also: make it throw an IllegalStateException when a servlet tries to execute one of its methods.
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

isNew

public boolean isNew()
              throws java.lang.IllegalStateException
Returns whether this session has been freshly created. A servlet can ask the server to give the HttpSession connected with this request/client. The Servlet can use this method to check whether the HttpSession has been newly created or if a HttpSession had already been created for a previous request.
Returns:
Whether this is a new HttpSession
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

putValue

public void putValue(java.lang.String name,
                     java.lang.Object value)
              throws java.lang.IllegalStateException
Puts a name and value in the HttpSession. If the Object implements HttpSessionBindindListener then the valueBound() method of the Object will be called.
Parameters:
name - the name of the item
value - the value of the item
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

removeValue

public void removeValue(java.lang.String name)
                 throws java.lang.IllegalStateException
Removes an item from the session. If the Object implements HttpSessionBindindListener then the valueUnBound() method of the Object will be called.
Parameters:
name - the name of the item.
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0

setMaxInactiveInterval

public void setMaxInactiveInterval(int interval)
                            throws java.lang.IllegalStateException
Sets the minimum time this session will be kept alive by the server when it doesn't get accessed by a client.
Note: hmmm, should an interval of -1 mean that it should live forever?
Parameters:
interval - Probably seconds or -1 if never
Since:
Servlet API 2.1

getSessionContext

public HttpSessionContext getSessionContext()
                                     throws java.lang.IllegalStateException
Deprecated. HttpSessionContext has been depricated for security reasons.
Gets this HttpSession's context. The context contains information that is the same for all HttpSessions for this (virtual) host.
Returns:
The context
Throws:
java.lang.IllegalStateException - if the session has been invalidated.
Since:
Servlet API 2.0