WebResource (Apache Tomcat 11.0.6 API Documentation)
Description: declaration: package: org.apache.catalina, interface: WebResource

# Interface WebResource

All Known Implementing Classes:
  `AbstractArchiveResource`, `AbstractResource`, `AbstractSingleArchiveResource`, `CachedResource`, `EmptyResource`, `FileResource`, `JarResource`, `JarResourceRoot`, `JarWarResource`, `VirtualResource`, `WarResource`

public interface WebResource
Represents a file or directory within a web application. It borrows heavily from `File`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `canRead()`
  `boolean`
  `delete()`
  `boolean`
  `exists()`
  `String`
  `getCanonicalPath()`
  `Certificate[]`
  `getCertificates()`
  `default URL`
  `getCodeBase()`
  Returns the code base for this resource.
  `byte[]`
  `getContent()`
  `long`
  `getContentLength()`
  `long`
  `getCreation()`
  `String`
  `getETag()`
  Return the weak ETag calculated from the content length and last modified.
  `InputStream`
  `getInputStream()`
  Obtain an InputStream based on the contents of this resource.
  `long`
  `getLastModified()`
  `String`
  `getLastModifiedHttp()`
  `Manifest`
  `getManifest()`
  `String`
  `getMimeType()`
  `String`
  `getName()`
  `default String`
  `getStrongETag()`
  Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
  `URL`
  `getURL()`
  `String`
  `getWebappPath()`
  `WebResourceRoot`
  `getWebResourceRoot()`
  `boolean`
  `isDirectory()`
  `boolean`
  `isFile()`
  `boolean`
  `isVirtual()`
  Indicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additional `WebResourceSet`.
  `void`
  `setMimeType(String mimeType)`
  Set the MIME type for this Resource.

- ## Method Details

  - ### getLastModified

    long getLastModified()
    Returns:
      `File.lastModified()`.

  - ### getLastModifiedHttp

    String getLastModifiedHttp()
    Returns:
      the last modified time of this resource in the correct format for the HTTP Last-Modified header as specified by RFC 2616.

  - ### exists

    boolean exists()
    Returns:
      `File.exists()`.

  - ### isVirtual

    boolean isVirtual()
    Indicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additional `WebResourceSet`. For example, if an external directory is mapped to /WEB-INF/lib in an otherwise empty web application, /WEB-INF will be represented as a virtual resource.
    Returns:
      `true` for a virtual resource

  - ### isDirectory

    boolean isDirectory()
    Returns:
      `File.isDirectory()`.

  - ### isFile

    boolean isFile()
    Returns:
      `File.isFile()`.

  - ### delete

    boolean delete()
    Returns:
      `File.delete()`.

  - ### getName

    String getName()
    Returns:
      `File.getName()`.

  - ### getContentLength

    long getContentLength()
    Returns:
      `File.length()`.

  - ### getCanonicalPath

    String getCanonicalPath()
    Returns:
      `File.getCanonicalPath()`.

  - ### canRead

    boolean canRead()
    Returns:
      `File.canRead()`.

  - ### getWebappPath

    String getWebappPath()
    Returns:
      The path of this resource relative to the web application root. If the resource is a directory, the return value will end in '/'.

  - ### getETag

    String getETag()
    Return the weak ETag calculated from the content length and last modified.
    Returns:
      The ETag for this resource

  - ### getStrongETag

    default String getStrongETag()
    Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
    Returns:
      The ETag for this resource

  - ### setMimeType

    void setMimeType(String mimeType)
    Set the MIME type for this Resource.
    Parameters:
      `mimeType` - The mime type that will be associated with the resource

  - ### getMimeType

    String getMimeType()
    Returns:
      the MIME type for this Resource.

  - ### getInputStream

    InputStream getInputStream()
    Obtain an InputStream based on the contents of this resource.
    Returns:
      An InputStream based on the contents of this resource or `null` if the resource does not exist or does not represent a file

  - ### getContent

    byte[] getContent()
    Returns:
      the binary content of this resource or `null` if it is not available in a byte[] because, for example, it is too big.

  - ### getCreation

    long getCreation()
    Returns:
      The time the file was created. If not available, the result of `getLastModified()` will be returned.

  - ### getURL

    URL getURL()
    Returns:
      a URL to access the resource or `null` if no such URL is available or if the resource does not exist.

  - ### getCodeBase

    default URL getCodeBase()
    Returns the code base for this resource.

    The expectation is that this will be deprecated and then removed once the SecurityManager has been fully removed from the JRE, and it has been confirmed that the JRE no longer depends on code base.

    Returns:
      the code base for this resource that will be used when looking up the assigned permissions for the code base in the security policy file when running under a security manager.

  - ### getWebResourceRoot

    WebResourceRoot getWebResourceRoot()
    Returns:
      a reference to the WebResourceRoot of which this WebResource is a part.

  - ### getCertificates

    Certificate[] getCertificates()
    Returns:
      the certificates that were used to sign this resource to verify it or @null if none.
    See Also:
      - `JarEntry.getCertificates()`

  - ### getManifest

    Manifest getManifest()
    Returns:
      the manifest associated with this resource or @null if none.
    See Also:
      - `JarFile.getManifest()`