# 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()`