public class ServletContextResource extends AbstractFileResolvingResource implements ContextResource
Resource
implementation for
javax.servlet.ServletContext
resources, interpreting
relative paths within the web application root directory.
Always supports stream access and URL access, but only allows
java.io.File
access when the web application archive
is expanded.
javax.servlet.ServletContext#getResourceAsStream
,
javax.servlet.ServletContext#getResource
,
javax.servlet.ServletContext#getRealPath
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
path |
private ServletContext |
servletContext |
Constructor and Description |
---|
ServletContextResource(ServletContext servletContext,
java.lang.String path)
Create a new ServletContextResource.
|
Modifier and Type | Method and Description |
---|---|
Resource |
createRelative(java.lang.String relativePath)
This implementation creates a ServletContextResource, applying the given path
relative to the path of the underlying file of this resource descriptor.
|
boolean |
equals(java.lang.Object obj)
This implementation compares the underlying ServletContext resource locations.
|
boolean |
exists()
This implementation checks
ServletContext.getResource . |
java.lang.String |
getDescription()
This implementation returns a description that includes the ServletContext
resource location.
|
java.io.File |
getFile()
This implementation resolves "file:" URLs or alternatively delegates to
ServletContext.getRealPath , throwing a FileNotFoundException
if not found or not resolvable. |
java.lang.String |
getFilename()
This implementation returns the name of the file that this ServletContext
resource refers to.
|
java.io.InputStream |
getInputStream()
This implementation delegates to
ServletContext.getResourceAsStream ,
but throws a FileNotFoundException if no resource found. |
java.lang.String |
getPath()
Return the path for this resource.
|
java.lang.String |
getPathWithinContext()
Return the path within the enclosing 'context'.
|
ServletContext |
getServletContext()
Return the ServletContext for this resource.
|
java.net.URL |
getURL()
This implementation delegates to
ServletContext.getResource ,
but throws a FileNotFoundException if no resource found. |
int |
hashCode()
This implementation returns the hash code of the underlying
ServletContext resource location.
|
boolean |
isFile()
This implementation always returns
false . |
boolean |
isReadable()
This implementation delegates to
ServletContext.getResourceAsStream ,
which returns null in case of a non-readable resource (e.g. |
contentLength, customizeConnection, customizeConnection, getFile, getFileForLastModifiedCheck, isFile, lastModified, readableChannel
getURI, isOpen, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
contentLength, getURI, isOpen, lastModified, readableChannel
private final ServletContext servletContext
private final java.lang.String path
public ServletContextResource(ServletContext servletContext, java.lang.String path)
The Servlet spec requires that resource paths start with a slash, even if many containers accept paths without leading slash too. Consequently, the given path will be prepended with a slash if it doesn't already start with one.
servletContext
- the ServletContext to load frompath
- the path of the resourcepublic final ServletContext getServletContext()
public final java.lang.String getPath()
public boolean exists()
ServletContext.getResource
.exists
in interface Resource
exists
in class AbstractFileResolvingResource
javax.servlet.ServletContext#getResource(String)
public boolean isReadable()
ServletContext.getResourceAsStream
,
which returns null
in case of a non-readable resource (e.g. a directory).isReadable
in interface Resource
isReadable
in class AbstractFileResolvingResource
javax.servlet.ServletContext#getResourceAsStream(String)
public boolean isFile()
AbstractResource
false
.isFile
in interface Resource
isFile
in class AbstractFileResolvingResource
Resource.getFile()
public java.io.InputStream getInputStream() throws java.io.IOException
ServletContext.getResourceAsStream
,
but throws a FileNotFoundException if no resource found.getInputStream
in interface InputStreamSource
null
)java.io.IOException
- if the stream could not be openedjavax.servlet.ServletContext#getResourceAsStream(String)
public java.net.URL getURL() throws java.io.IOException
ServletContext.getResource
,
but throws a FileNotFoundException if no resource found.getURL
in interface Resource
getURL
in class AbstractResource
java.io.IOException
- if the resource cannot be resolved as URL,
i.e. if the resource is not available as descriptorjavax.servlet.ServletContext#getResource(String)
public java.io.File getFile() throws java.io.IOException
ServletContext.getRealPath
, throwing a FileNotFoundException
if not found or not resolvable.getFile
in interface Resource
getFile
in class AbstractFileResolvingResource
java.io.IOException
- if the resource cannot be resolved as absolute
file path, i.e. if the resource is not available in a file systemjavax.servlet.ServletContext#getResource(String)
,
javax.servlet.ServletContext#getRealPath(String)
public Resource createRelative(java.lang.String relativePath)
createRelative
in interface Resource
createRelative
in class AbstractResource
relativePath
- the relative path (relative to this resource)StringUtils.applyRelativePath(String, String)
public java.lang.String getFilename()
getFilename
in interface Resource
getFilename
in class AbstractResource
StringUtils.getFilename(String)
public java.lang.String getDescription()
getDescription
in interface Resource
Object.toString()
public java.lang.String getPathWithinContext()
ContextResource
This is typically path relative to a context-specific root directory, e.g. a ServletContext root or a PortletContext root.
getPathWithinContext
in interface ContextResource
public boolean equals(java.lang.Object obj)
equals
in class AbstractResource
Resource.getDescription()
public int hashCode()
hashCode
in class AbstractResource
Resource.getDescription()