org.apache.catalina.valves

## Class PersistentValve

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.valves.ValveBase
      - - org.apache.catalina.valves.PersistentValve

- All Implemented Interfaces:
    MBeanRegistration, Contained, Lifecycle, Valve

      public class PersistentValve
      extends ValveBase

  Valve that implements per-request session persistence. It is intended to be used with non-sticky load-balancers.

  USAGE CONSTRAINT: To work correctly it requires a PersistentManager.

  USAGE CONSTRAINT: To work correctly it assumes only one request exists per session at any one time.

  Author:
    Jean-Frederic Clere

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.valves.ValveBase

      `asyncSupported, container, containerLog, next, sm`

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PersistentValve()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getInfo()` Return descriptive information about this Valve implementation.
    `void` | `invoke(Request request, Response response)` Select the appropriate child Context to process this request, based on the specified request URI.
    `protected boolean` | `isSessionStale(Session session, long timeNow)` Indicate whether the session has been idle for longer than its expiration date as of the supplied time.
    `void` | `setContainer(Container container)` Set the Container with which this Valve is associated, if any.

    - ### Methods inherited from class org.apache.catalina.valves.ValveBase

      `backgroundProcess, event, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setNext, startInternal, stopInternal, toString`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, init, removeLifecycleListener, setState, setState, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### PersistentValve

          public PersistentValve()

  - ### Method Detail

    - #### getInfo

          public String getInfo()

      Return descriptive information about this Valve implementation.
      Specified by:
        `getInfo` in interface `Valve`
      Overrides:
        `getInfo` in class `ValveBase`

    - #### setContainer

          public void setContainer(Container container)

      Description copied from class: `ValveBase`
      Set the Container with which this Valve is associated, if any.
      Specified by:
        `setContainer` in interface `Contained`
      Overrides:
        `setContainer` in class `ValveBase`
      Parameters:
        `container` - The new associated container

    - #### invoke

          public void invoke(Request request,
                    Response response)
                      throws IOException,
                             ServletException

      Select the appropriate child Context to process this request, based on the specified request URI. If no matching Context can be found, return an appropriate HTTP error.
      Specified by:
        `invoke` in interface `Valve`
      Specified by:
        `invoke` in class `ValveBase`
      Parameters:
        `request` - Request to be processed
        `response` - Response to be produced
      Throws:
        `IOException` - if an input/output error occurred
        `ServletException` - if a servlet error occurred

    - #### isSessionStale

          protected boolean isSessionStale(Session session,
                               long timeNow)

      Indicate whether the session has been idle for longer than its expiration date as of the supplied time. FIXME: Probably belongs in the Session class.

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.