org.springframework.web.context.support

## Class ServletContextResourcePatternResolver

- java.lang.Object
- - org.springframework.core.io.support.PathMatchingResourcePatternResolver
  - - org.springframework.web.context.support.ServletContextResourcePatternResolver

- All Implemented Interfaces:
    ResourceLoader, ResourcePatternResolver

      public class ServletContextResourcePatternResolver
      extends PathMatchingResourcePatternResolver

  ServletContext-aware subclass of `PathMatchingResourcePatternResolver`, able to find matching resources below the web application root directory via Servlet 2.3's `ServletContext.getResourcePaths`. Falls back to the superclass' file system checking for other resources.
  Since:
    1.1.2
  Author:
    Juergen Hoeller

- - ### Field Summary

    - ### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `CLASSPATH_ALL_URL_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.ResourceLoader

      `CLASSPATH_URL_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ServletContextResourcePatternResolver(ResourceLoader resourceLoader)` Create a new ServletContextResourcePatternResolver.
    `ServletContextResourcePatternResolver(ServletContext servletContext)` Create a new ServletContextResourcePatternResolver.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Set<Resource>` | `doFindPathMatchingFileResources(Resource rootDirResource, String subPattern)` Overridden version which checks for ServletContextResource and uses `ServletContext.getResourcePaths` to find matching resources below the web application root directory.
    `protected void` | `doRetrieveMatchingServletContextResources(ServletContext servletContext, String fullPattern, String dir, Set<Resource> result)` Recursively retrieve ServletContextResources that match the given pattern, adding them to the given result set.

    - ### Methods inherited from class org.springframework.core.io.support.PathMatchingResourcePatternResolver

      `convertClassLoaderURL, determineRootDir, doFindMatchingFileSystemResources, doFindPathMatchingJarResources, doRetrieveMatchingFiles, findAllClassPathResources, findPathMatchingResources, getClassLoader, getJarFile, getPathMatcher, getResource, getResourceLoader, getResources, isJarResource, resolveRootDirResource, retrieveMatchingFiles, setPathMatcher`

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

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

- - ### Constructor Detail

    - #### ServletContextResourcePatternResolver

          public ServletContextResourcePatternResolver(ServletContext servletContext)

      Create a new ServletContextResourcePatternResolver.
      Parameters:
        `servletContext` - the ServletContext to load resources with
      See Also:
        `ServletContextResourceLoader.ServletContextResourceLoader(javax.servlet.ServletContext)`

    - #### ServletContextResourcePatternResolver

          public ServletContextResourcePatternResolver(ResourceLoader resourceLoader)

      Create a new ServletContextResourcePatternResolver.
      Parameters:
        `resourceLoader` - the ResourceLoader to load root directories and actual resources with

  - ### Method Detail

    - #### doFindPathMatchingFileResources

          protected Set<Resource> doFindPathMatchingFileResources(Resource rootDirResource,
                                                      String subPattern)
                                                           throws IOException

      Overridden version which checks for ServletContextResource and uses `ServletContext.getResourcePaths` to find matching resources below the web application root directory. In case of other resources, delegates to the superclass version.
      Overrides:
        `doFindPathMatchingFileResources` in class `PathMatchingResourcePatternResolver`
      Parameters:
        `rootDirResource` - the root directory as Resource
        `subPattern` - the sub pattern to match (below the root directory)
      Returns:
        the Set of matching Resource instances
      Throws:
        `IOException` - in case of I/O errors
      See Also:
        `doRetrieveMatchingServletContextResources(javax.servlet.ServletContext, java.lang.String, java.lang.String, java.util.Set<org.springframework.core.io.Resource>)`, `ServletContextResource`, `ServletContext.getResourcePaths(java.lang.String)`

    - #### doRetrieveMatchingServletContextResources

          protected void doRetrieveMatchingServletContextResources(ServletContext servletContext,
                                                       String fullPattern,
                                                       String dir,
                                                       Set<Resource> result)
                                                            throws IOException

      Recursively retrieve ServletContextResources that match the given pattern, adding them to the given result set.
      Parameters:
        `servletContext` - the ServletContext to work on
        `fullPattern` - the pattern to match against, with preprended root directory path
        `dir` - the current directory
        `result` - the Set of matching Resources to add to
      Throws:
        `IOException` - if directory contents could not be retrieved
      See Also:
        `ServletContextResource`, `ServletContext.getResourcePaths(java.lang.String)`