Package org.zkoss.web.util.resource

## Class ServletContextLocator

- java.lang.Object
- - org.zkoss.web.util.resource.ServletContextLocator

- All Implemented Interfaces:
    `Locator`

      public class ServletContextLocator
      extends java.lang.Object
      implements Locator

  Locator based on ServletContext.
  Author:
    tomyeh

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ServletContextLocator​(javax.servlet.ServletContext ctx)` | Constructor.
    `ServletContextLocator​(javax.servlet.ServletContext ctx, boolean acceptURL)` | Constructor.
    `ServletContextLocator​(javax.servlet.ServletContext ctx, java.lang.String dir)` | Constructor.
    `ServletContextLocator​(javax.servlet.ServletContext ctx, java.lang.String dir, java.lang.String prefix)` | Constructor.
    `ServletContextLocator​(javax.servlet.ServletContext ctx, java.lang.String dir, java.lang.String prefix, boolean acceptURL)` | Constructor.
    `ServletContextLocator​(javax.servlet.ServletContext ctx, java.lang.String dir, java.lang.String prefix, boolean acceptURL, java.lang.String externalPrefix)` | Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object o)` |
    `java.lang.String` | `getDirectory()` | Returns the directory used to resolve the relative path, or null if relative path is not allowed.
    `java.net.URL` | `getResource​(java.lang.String name)` | Finds the resource with the given name.
    `java.io.InputStream` | `getResourceAsStream​(java.lang.String name)` | Returns an input stream for reading the specified resource.
    `javax.servlet.ServletContext` | `getServletContext()` | Returns the servlet context.
    `int` | `hashCode()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx)

      Constructor. A short cut of ServletContextLocator(ctx, null, null, false)

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx,
                                       boolean acceptURL)

      Constructor.
      Parameters:
        `acceptURL` - whether to URL (such as file:/, http:// and ftp://) are accepted. In other words, `Servlets.getResource(javax.servlet.ServletContext, java.lang.String)` will be used.
      Since:
        5.0.7
      See Also:
        `Servlets.getResource(javax.servlet.ServletContext, java.lang.String)`

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx,
                                       java.lang.String dir)

      Constructor. A short of ServletContextLocator(ctx, dir, null, false, null).
      Parameters:
        `dir` - the directory used when relative path is specified (for `getResource(java.lang.String)` and `getResourceAsStream(java.lang.String)`). It must be null, empty, or starts with /.

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx,
                                       java.lang.String dir,
                                       java.lang.String prefix)

      Constructor. A short cut of ServletContextLocator(ctx, dir, prefix, false, null).

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx,
                                       java.lang.String dir,
                                       java.lang.String prefix,
                                       boolean acceptURL)

      Constructor. A short cut of ServletContextLocator(ctx, dir, prefix, acceptURL, null).

    - #### ServletContextLocator

          public ServletContextLocator​(javax.servlet.ServletContext ctx,
                                       java.lang.String dir,
                                       java.lang.String prefix,
                                       boolean acceptURL,
                                       java.lang.String externalPrefix)

      Constructor. For example, if prefix is "/WEB-INF/cwr", then getResource("/abc") will look for "/WEB-INF/cwr/abc" first, and then "/abc".

      Another example, if prefix is "/WEB-INF/cwr" and dir is "/subdir", then getResource("abc") will look for "/WEB-INF/cwr/subdir/abc".

      Parameters:
        `dir` - the directory used when relative path is specified (for `getResource(java.lang.String)` and `getResourceAsStream(java.lang.String)`). It must be null, empty, or starts with /.
        `prefix` - the directory to prefix each directory specified (for `getResource(java.lang.String)` and `getResourceAsStream(java.lang.String)`). It must be null, empty, or starts with /.
        `acceptURL` - whether to URL (such as file:/, http:// and ftp://) are accepted. In other words, `Servlets.getResource(javax.servlet.ServletContext, java.lang.String)` will be used.

  - ### Method Detail

    - #### getServletContext

          public javax.servlet.ServletContext getServletContext()

      Returns the servlet context.

    - #### getDirectory

          public java.lang.String getDirectory()

      Description copied from interface: `Locator`
      Returns the directory used to resolve the relative path, or null if relative path is not allowed.

      Note: if the returned directory is not null, it must end with '/'.

      Specified by:
        `getDirectory` in interface `Locator`

    - #### getResource

          public java.net.URL getResource​(java.lang.String name)

      Description copied from interface: `Locator`
      Finds the resource with the given name. A resource is some data (images, audio, text, etc) that can be accessed by class code in a way that is independent of the location of the code.
      Specified by:
        `getResource` in interface `Locator`
      Returns:
        a URL for reading the resource, or null if the resource could not be found or the caller doesn't have adequate privileges to get the resource

    - #### getResourceAsStream

          public java.io.InputStream getResourceAsStream​(java.lang.String name)

      Description copied from interface: `Locator`
      Returns an input stream for reading the specified resource.
      Specified by:
        `getResourceAsStream` in interface `Locator`
      Returns:
        an input stream for reading the resource, or null if the resource could not be found or the caller doesn't have adequate privileges to get the resource

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`