Package io.vertx.ext.web

## Interface Session

- All Known Implementing Classes:
    `AbstractSession`

      public interface Session

  Represents a browser session.

  Sessions persist between HTTP requests for a single browser session. They are deleted when the browser is closed, or they time-out. Session cookies are used to maintain sessions using a secure UUID.

  Sessions can be used to maintain data for a browser session, e.g. a shopping basket.

  The context must have first been routed to a `SessionHandler` for sessions to be available.

  Author:
    Tim Fox

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Session` | `computeIfAbsent​(String key, java.util.function.Function<String,​Object> mappingFunction)` | Put some data in a session if absent.
    `Map<String,​Object>` | `data()` |
    `void` | `destroy()` | Destroy the session
    `<T> T` | `get​(String key)` | Get some data from the session
    `String` | `id()` |
    `boolean` | `isDestroyed()` |
    `boolean` | `isEmpty()` |
    `boolean` | `isRegenerated()` |
    `long` | `lastAccessed()` |
    `String` | `oldId()` |
    `Session` | `put​(String key, Object obj)` | Put some data in a session
    `Session` | `putIfAbsent​(String key, Object obj)` | Put some data in a session if absent
    `Session` | `regenerateId()` |
    `<T> T` | `remove​(String key)` | Remove some data from the session
    `void` | `setAccessed()` | Mark the session as being accessed.
    `long` | `timeout()` |
    `default String` | `value()` | The short representation of the session to be added to the session cookie.

- - ### Method Detail

    - #### regenerateId

          Session regenerateId()

      Returns:
        The new unique ID of the session.

    - #### id

          String id()

      Returns:
        The unique ID of the session. This is generated using a random secure UUID.

    - #### put

          Session put​(String key,
                      Object obj)

      Put some data in a session
      Parameters:
        `key` - the key for the data
        `obj` - the data
      Returns:
        a reference to this, so the API can be used fluently

    - #### putIfAbsent

          Session putIfAbsent​(String key,
                              Object obj)

      Put some data in a session if absent
      Parameters:
        `key` - the key for the data
        `obj` - the data
      Returns:
        a reference to this, so the API can be used fluently

    - #### computeIfAbsent

          Session computeIfAbsent​(String key,
                                  java.util.function.Function<String,​Object> mappingFunction)

      Put some data in a session if absent. If the specified key is not already associated with a value (or is mapped to `null`), attempts to compute its value using the given mapping function and enters it into this map unless `null`.
      Parameters:
        `key` - the key for the data
        `mappingFunction` - a mapping function
      Returns:
        a reference to this, so the API can be used fluently

    - #### get

          <T> T get​(String key)

      Get some data from the session
      Parameters:
        `key` - the key of the data
      Returns:
        the data

    - #### remove

          <T> T remove​(String key)

      Remove some data from the session
      Parameters:
        `key` - the key of the data
      Returns:
        the data that was there or null if none there

    - #### data

          Map<String,​Object> data()

      Returns:
        the session data as a map

    - #### isEmpty

          boolean isEmpty()

      Returns:
        true if the session has data

    - #### lastAccessed

          long lastAccessed()

      Returns:
        the time the session was last accessed

    - #### destroy

          void destroy()

      Destroy the session

    - #### isDestroyed

          boolean isDestroyed()

      Returns:
        has the session been destroyed?

    - #### isRegenerated

          boolean isRegenerated()

      Returns:
        has the session been renewed?

    - #### oldId

          String oldId()

      Returns:
        old ID if renewed

    - #### timeout

          long timeout()

      Returns:
        the amount of time in ms, after which the session will expire, if not accessed.

    - #### setAccessed

          void setAccessed()

      Mark the session as being accessed.

    - #### value

          default String value()

      The short representation of the session to be added to the session cookie. By default is the session id.
      Returns:
        short representation string.