Package io.vertx.ext.web.handler

## Interface StaticHandler

- All Superinterfaces:
    `Handler<RoutingContext>`

      public interface StaticHandler
      extends Handler<RoutingContext>

  A handler for serving static resources from the file system or classpath.
  Author:
    Tim Fox

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static boolean` | `DEFAULT_ALWAYS_ASYNC_FS` | Default of whether async filesystem access should always be used
    `static long` | `DEFAULT_CACHE_ENTRY_TIMEOUT` | Default cache entry timeout, when caching
    `static boolean` | `DEFAULT_CACHING_ENABLED` | Default of whether cache header handling is enabled
    `static boolean` | `DEFAULT_DIRECTORY_LISTING` | Default of whether directory listing is enabled
    `static String` | `DEFAULT_DIRECTORY_TEMPLATE` | Default template file to use for directory listing
    `static boolean` | `DEFAULT_ENABLE_FS_TUNING` | Default of whether fs async/sync tuning should be used
    `static boolean` | `DEFAULT_FILES_READ_ONLY` | Default value of whether files are read -only and never will be updated
    `static boolean` | `DEFAULT_INCLUDE_HIDDEN` | Default of whether hidden files can be served
    `static String` | `DEFAULT_INDEX_PAGE` | The default index page
    `static long` | `DEFAULT_MAX_AGE_SECONDS` | Default max age for cache headers
    `static long` | `DEFAULT_MAX_AVG_SERVE_TIME_NS` | Default max avg serve time, in ns, over which serving will be considered slow
    `static int` | `DEFAULT_MAX_CACHE_SIZE` | The default max cache size
    `static boolean` | `DEFAULT_RANGE_SUPPORT` | Default of whether Range request handling support should be used
    `static boolean` | `DEFAULT_ROOT_FILESYSTEM_ACCESS` | Default of whether access to the root of the file system should be allowed or just allow from the current working directory.
    `static boolean` | `DEFAULT_SEND_VARY_HEADER` | Default of whether vary header should be sent.
    `static String` | `DEFAULT_WEB_ROOT` | Default value of the web-root, where files are served from

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static StaticHandler` | `create()` | Create a handler using defaults
    `static StaticHandler` | `create​(FileSystemAccess handlerVisibility, String root)` | Create a handler, specifying web-root and access option: absolute path or relative
    `static StaticHandler` | `create​(String root)` | Create a handler, specifying web-root
    `StaticHandler` | `setAlwaysAsyncFS​(boolean alwaysAsyncFS)` | Set whether async filesystem access should always be used
    `StaticHandler` | `setCacheEntryTimeout​(long timeout)` | Set the server cache entry timeout when caching is enabled
    `StaticHandler` | `setCachingEnabled​(boolean enabled)` | Set whether cache header handling is enabled
    `StaticHandler` | `setDefaultContentEncoding​(String contentEncoding)` | Set the default content encoding for text related files.
    `StaticHandler` | `setDirectoryListing​(boolean directoryListing)` | Set whether directory listing is enabled
    `StaticHandler` | `setDirectoryTemplate​(String directoryTemplate)` | Set the directory template to be used when directory listing
    `StaticHandler` | `setEnableFSTuning​(boolean enableFSTuning)` | Set whether async/sync filesystem tuning should enabled
    `StaticHandler` | `setEnableRangeSupport​(boolean enableRangeSupport)` | Set whether range requests (resumable downloads; media streaming) should be enabled.
    `StaticHandler` | `setFilesReadOnly​(boolean readOnly)` | Set whether files are read-only and will never change
    `StaticHandler` | `setHttp2PushMapping​(List<Http2PushMapping> http2PushMappings)` | Set the file mapping for http2push and link preload
    `StaticHandler` | `setIncludeHidden​(boolean includeHidden)` | Set whether hidden files should be served
    `StaticHandler` | `setIndexPage​(String indexPage)` | Set the index page
    `StaticHandler` | `setMaxAgeSeconds​(long maxAgeSeconds)` | Set value for max age in caching headers
    `StaticHandler` | `setMaxAvgServeTimeNs​(long maxAvgServeTimeNanoSeconds)` | Set the max serve time in ns, above which serves are considered slow
    `StaticHandler` | `setMaxCacheSize​(int maxCacheSize)` | Set the max cache size, when caching is enabled
    `StaticHandler` | `setSendVaryHeader​(boolean varyHeader)` | Set whether vary header should be sent with response.
    `StaticHandler` | `skipCompressionForMediaTypes​(Set<String> mediaTypes)` | Skip compression if the media type of the file to send is in the provided `mediaTypes` set.
    `StaticHandler` | `skipCompressionForSuffixes​(Set<String> fileSuffixes)` | Skip compression if the suffix of the file to send is in the provided `fileSuffixes` set.

    - ### Methods inherited from interface io.vertx.core.Handler

      `handle`

- - ### Field Detail

    - #### DEFAULT_WEB_ROOT

          static final String DEFAULT_WEB_ROOT

      Default value of the web-root, where files are served from
      See Also:
        Constant Field Values

    - #### DEFAULT_FILES_READ_ONLY

          static final boolean DEFAULT_FILES_READ_ONLY

      Default value of whether files are read -only and never will be updated
      See Also:
        Constant Field Values

    - #### DEFAULT_MAX_AGE_SECONDS

          static final long DEFAULT_MAX_AGE_SECONDS

      Default max age for cache headers
      See Also:
        Constant Field Values

    - #### DEFAULT_CACHING_ENABLED

          static final boolean DEFAULT_CACHING_ENABLED

      Default of whether cache header handling is enabled

    - #### DEFAULT_DIRECTORY_LISTING

          static final boolean DEFAULT_DIRECTORY_LISTING

      Default of whether directory listing is enabled
      See Also:
        Constant Field Values

    - #### DEFAULT_DIRECTORY_TEMPLATE

          static final String DEFAULT_DIRECTORY_TEMPLATE

      Default template file to use for directory listing
      See Also:
        Constant Field Values

    - #### DEFAULT_INCLUDE_HIDDEN

          static final boolean DEFAULT_INCLUDE_HIDDEN

      Default of whether hidden files can be served
      See Also:
        Constant Field Values

    - #### DEFAULT_CACHE_ENTRY_TIMEOUT

          static final long DEFAULT_CACHE_ENTRY_TIMEOUT

      Default cache entry timeout, when caching
      See Also:
        Constant Field Values

    - #### DEFAULT_INDEX_PAGE

          static final String DEFAULT_INDEX_PAGE

      The default index page
      See Also:
        Constant Field Values

    - #### DEFAULT_MAX_CACHE_SIZE

          static final int DEFAULT_MAX_CACHE_SIZE

      The default max cache size
      See Also:
        Constant Field Values

    - #### DEFAULT_ALWAYS_ASYNC_FS

          static final boolean DEFAULT_ALWAYS_ASYNC_FS

      Default of whether async filesystem access should always be used
      See Also:
        Constant Field Values

    - #### DEFAULT_ENABLE_FS_TUNING

          static final boolean DEFAULT_ENABLE_FS_TUNING

      Default of whether fs async/sync tuning should be used
      See Also:
        Constant Field Values

    - #### DEFAULT_MAX_AVG_SERVE_TIME_NS

          static final long DEFAULT_MAX_AVG_SERVE_TIME_NS

      Default max avg serve time, in ns, over which serving will be considered slow
      See Also:
        Constant Field Values

    - #### DEFAULT_RANGE_SUPPORT

          static final boolean DEFAULT_RANGE_SUPPORT

      Default of whether Range request handling support should be used
      See Also:
        Constant Field Values

    - #### DEFAULT_ROOT_FILESYSTEM_ACCESS

          static final boolean DEFAULT_ROOT_FILESYSTEM_ACCESS

      Default of whether access to the root of the file system should be allowed or just allow from the current working directory.
      See Also:
        Constant Field Values

    - #### DEFAULT_SEND_VARY_HEADER

          static final boolean DEFAULT_SEND_VARY_HEADER

      Default of whether vary header should be sent.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### create

          static StaticHandler create()

      Create a handler using defaults
      Returns:
        the handler

    - #### create

          static StaticHandler create​(String root)

      Create a handler, specifying web-root
      Parameters:
        `root` - the web-root
      Returns:
        the handler

    - #### create

          static StaticHandler create​(FileSystemAccess handlerVisibility,
                                      String root)

      Create a handler, specifying web-root and access option: absolute path or relative
      Parameters:
        `handlerVisibility` - CWD or file system root
        `root` - the web-root
      Returns:
        the handler

    - #### setFilesReadOnly

          StaticHandler setFilesReadOnly​(boolean readOnly)

      Set whether files are read-only and will never change
      Parameters:
        `readOnly` - whether files are read-only
      Returns:
        a reference to this, so the API can be used fluently

    - #### setMaxAgeSeconds

          StaticHandler setMaxAgeSeconds​(long maxAgeSeconds)

      Set value for max age in caching headers
      Parameters:
        `maxAgeSeconds` - maximum time for browser to cache, in seconds
      Returns:
        a reference to this, so the API can be used fluently

    - #### setCachingEnabled

          StaticHandler setCachingEnabled​(boolean enabled)

      Set whether cache header handling is enabled
      Parameters:
        `enabled` - true if enabled
      Returns:
        a reference to this, so the API can be used fluently

    - #### setDirectoryListing

          StaticHandler setDirectoryListing​(boolean directoryListing)

      Set whether directory listing is enabled
      Parameters:
        `directoryListing` - true if enabled
      Returns:
        a reference to this, so the API can be used fluently

    - #### setIncludeHidden

          StaticHandler setIncludeHidden​(boolean includeHidden)

      Set whether hidden files should be served
      Parameters:
        `includeHidden` - true if hidden files should be served
      Returns:
        a reference to this, so the API can be used fluently

    - #### setCacheEntryTimeout

          StaticHandler setCacheEntryTimeout​(long timeout)

      Set the server cache entry timeout when caching is enabled
      Parameters:
        `timeout` - the timeout, in ms
      Returns:
        a reference to this, so the API can be used fluently

    - #### setIndexPage

          StaticHandler setIndexPage​(String indexPage)

      Set the index page
      Parameters:
        `indexPage` - the index page
      Returns:
        a reference to this, so the API can be used fluently

    - #### setMaxCacheSize

          StaticHandler setMaxCacheSize​(int maxCacheSize)

      Set the max cache size, when caching is enabled
      Parameters:
        `maxCacheSize` - the max cache size
      Returns:
        a reference to this, so the API can be used fluently

    - #### setHttp2PushMapping

          StaticHandler setHttp2PushMapping​(List<Http2PushMapping> http2PushMappings)

      Set the file mapping for http2push and link preload
      Parameters:
        `http2PushMappings` - the mapping for http2 push
      Returns:
        a reference to this, so the API can be used fluently

    - #### skipCompressionForMediaTypes

          StaticHandler skipCompressionForMediaTypes​(Set<String> mediaTypes)

      Skip compression if the media type of the file to send is in the provided `mediaTypes` set. `Content-Encoding` header set to `identity` for the types present in the `mediaTypes` set
      Parameters:
        `mediaTypes` - the set of mime types that are already compressed
      Returns:
        a reference to this, so the API can be used fluently

    - #### skipCompressionForSuffixes

          StaticHandler skipCompressionForSuffixes​(Set<String> fileSuffixes)

      Skip compression if the suffix of the file to send is in the provided `fileSuffixes` set. `Content-Encoding` header set to `identity` for the suffixes present in the `fileSuffixes` set
      Parameters:
        `fileSuffixes` - the set of file suffixes that are already compressed
      Returns:
        a reference to this, so the API can be used fluently

    - #### setAlwaysAsyncFS

          StaticHandler setAlwaysAsyncFS​(boolean alwaysAsyncFS)

      Set whether async filesystem access should always be used
      Parameters:
        `alwaysAsyncFS` - true for always async FS access
      Returns:
        a reference to this, so the API can be used fluently

    - #### setEnableFSTuning

          StaticHandler setEnableFSTuning​(boolean enableFSTuning)

      Set whether async/sync filesystem tuning should enabled
      Parameters:
        `enableFSTuning` - true to enabled FS tuning
      Returns:
        a reference to this, so the API can be used fluently

    - #### setMaxAvgServeTimeNs

          StaticHandler setMaxAvgServeTimeNs​(long maxAvgServeTimeNanoSeconds)

      Set the max serve time in ns, above which serves are considered slow
      Parameters:
        `maxAvgServeTimeNanoSeconds` - max serve time, in ns
      Returns:
        a reference to this, so the API can be used fluently

    - #### setDirectoryTemplate

          StaticHandler setDirectoryTemplate​(String directoryTemplate)

      Set the directory template to be used when directory listing
      Parameters:
        `directoryTemplate` - the directory template
      Returns:
        a reference to this, so the API can be used fluently

    - #### setEnableRangeSupport

          StaticHandler setEnableRangeSupport​(boolean enableRangeSupport)

      Set whether range requests (resumable downloads; media streaming) should be enabled.
      Parameters:
        `enableRangeSupport` - true to enable range support
      Returns:
        a reference to this, so the API can be used fluently

    - #### setSendVaryHeader

          StaticHandler setSendVaryHeader​(boolean varyHeader)

      Set whether vary header should be sent with response.
      Parameters:
        `varyHeader` - true to sent vary header
      Returns:
        a reference to this, so the API can be used fluently

    - #### setDefaultContentEncoding

          StaticHandler setDefaultContentEncoding​(String contentEncoding)

      Set the default content encoding for text related files. This allows overriding the system settings default value.
      Parameters:
        `contentEncoding` - the desired content encoding e.g.: "UTF-8"
      Returns:
        a reference to this, so the API can be used fluently