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 and 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.

Copyright © 2022 Eclipse. All rights reserved.