
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
It is sometimes useful to preserve existing Sessions across restarts
  of Jetty. The 
  HashSessionManager  supports this feature. If you enable
  persistence, the HashSessionManager saves all existing, valid
  Sessions to disk before shutdown completes. On restart, Jetty restores the
  saved Sessions.
A SessionManager does just what its name suggests–it manages the
    lifecycle and state of sessions on behalf of a webapp. Each webapp must
    have its own unique SessionManager instance. Enabling persistence is as
    simple as configuring the HashSessionManager as the
    SessionManager for a webapp and telling it where on disk to store the
    sessions:
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> . . . <Set name="sessionHandler"> <New class="org.eclipse.jetty.servlet.SessionHandler"> <Arg> <New class="org.eclipse.jetty.servlet.HashSessionManager"> <Set name="storeDirectory">your/chosen/directory/goes/here</Set> </New> </Arg> </New> </Set> . . . </Configure>
If you want to persist the sessions from multiple webapps:
Configure a separate HashSessionManager for each.
Assign to each a different value for 'storeDirectory'.
The above example uses a configuration file suitable for the ContextProvider, thus you might want to check out ???.
You might need to ensure that the sessions are loaded AFTER the servlet environment starts up (by default, Jetty eagerly loads sessions as part of the container startup, but before it initializes the servlet environment). For example, the Wicket web framework requires the servlet environment to be available when sessions are activated.
Using SessionManager.setLazyLoad(true), Jetty loads
    sessions lazily either when it receives the first request for a session,
    or the session scavenger runs for the first time, whichever happens first.
    Here's how the configuration looks in XML:
<Set name="sessionHandler"> <New class="org.eclipse.jetty.servlet.SessionHandler"> <Arg> <New class="org.eclipse.jetty.servlet.HashSessionManager"> <Set name="lazyLoad">true</Set> </New> </Arg> </New> </Set>
To enable session persistence for the Jetty Maven plugin, set up the HashSessionManager in the configuration section like so:
<plugin>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.0.0.RC2 (or current version)</version>
  <configuration>
    <!-- ... -->
    <webAppConfig implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext">
      <defaultsDescriptor>/Users/jesse/docsync/jetty-documentation/target/classes/META-INF/webdefault.xml</defaultsDescriptor>
      <contextPath>${jetty.contextRoot}</contextPath>
      <sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
        <sessionManager implementation="org.eclipse.jetty.server.session.HashSessionManager">
          <storeDirectory>/Users/jesse/docsync/jetty-documentation/target/jetty-sessions</storeDirectory>
          <idleSavePeriod>1</idleSavePeriod>
        </sessionManager>
      </sessionHandler>
    </webAppConfig>
    <!-- ... -->
  </configuration>
</plugin>      See an error or something missing? Contribute to this documentation at Github!