Servlet::Http::HttpSession - HTTP session interface
for my $name ($session->getAttributeNames()) { my $value = $session->getAttribute($name); # or $session->removeAttribute($name); }
my $time = $session->getCreationTime();
my $id = $session->getId();
my $time = $session->getLastAccessedTime();
my $timeout = $session->getMaxInactiveInterval();
$session->invalidate();
my $bool = $session->isNew();
$session->setAttributre($name, $value);
$session->setMaxInactiveInterval($timeout);
Provides a way to identify a user across more than one page request or site visit and to store information about that user.
The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.
This interface allows servlets to view and manipulate information about a session, such as the session identifier, creation time and last accessed time, and to bind objects to sessions, allowing user information to persist across multiple user connections.
When an application stores an object in or removes an object from a session, the session checks whether the object implements Servlet::Http::HttpSessionBindingListener. If it does, the servlet notifies the object that it has been bound to or unbound from the session. Notifications are sent after the binding methods complete. For sessions that are invalidated or expire, notifications are sent after the session has been invalidated or expired.
When a container migrates a session between intepreters in a distributed container setting, all session attributes implementing Servlet::Http::HttpSessionActivationListener are notified.
A servlet should be able to handle cases in which the client does not
choose to join a session, such as when cookies are intentionally
turned off. Until the client joins the session, isNew()
returns
true. If the client chooses not to join the session, getSession()
will return a different session on each request, and isNew()
will
always return true.
Session information is scoped only to the current web application (Servlet::ServletContext), so information stored in one context will not be directly visible in another.
getAttribute($name)
Parameters:
Throws:
getAttributeNames()
Throws:
getCreationTime()
Throws:
getId()
getLastAccessedTime()
Actions that your application takes, such as getting or setting a value associated with the session, do not affect the access time.
getMaxInactiveInterval()
setMaxInactiveInterval()
. A
negative time indicates the session should never time out.
invalidate()
Throws:
isNew()
Throws:
removeAttribute($name)
After this method executes, and if the object implements
Servlet::Http::HttpSessionBindingListener, the container calls
valueUnbound()
on the object.
Parameters:
Throws:
After this method executes, and if the new object implements
Servlet::Http::HttpSessionBindingListener, the container calls
valueBound()
on the object.
If a previously bound object was replaced, and it implements
Servlet::Http::HttpSessionBindingListener, the container calls
valueUnbound()
on it.
Parameters:
Throws:
setMaxInactiveInterval($interval)
Parameters:
the Servlet::Http::HttpSessionActivationListener manpage, the Servlet::Http::HttpSessionBindingListener manpage, the Servlet::Http::HttpSessionContext manpage
Brian Moseley, bcm@maz.org