TldScanner (Apache Tomcat 8.5.89 API Documentation)

Package org.apache.jasper.servlet

## Class TldScanner

- java.lang.Object
- - org.apache.jasper.servlet.TldScanner

- Direct Known Subclasses:
    `TldPreScanned`

      public class TldScanner
      extends java.lang.Object

  Scans for and loads Tag Library Descriptors contained in a web application.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TldScanner​(ServletContext context, boolean namespaceAware, boolean validation, boolean blockExternal)` | Initialise with the application's ServletContext.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.List<java.lang.String>` | `getListeners()` | Returns a list of all listeners declared by scanned TLDs.
    `java.util.Map<TldResourcePath,​TaglibXml>` | `getTldResourcePathTaglibXmlMap()` | Returns the map of TldResourcePath to parsed XML files built by this scanner.
    `java.util.Map<java.lang.String,​TldResourcePath>` | `getUriTldResourcePathMap()` | Returns the map of URI to TldResourcePath built by this scanner.
    `protected void` | `parseTld​(java.lang.String resourcePath)` |
    `protected void` | `parseTld​(TldResourcePath path)` |
    `void` | `scan()` | Scan for TLDs in all places defined by the specification: Tag libraries defined by the platform Entries from <jsp-config> in web.xml A resources under /WEB-INF In jar files from /WEB-INF/lib Additional entries from the container
    `void` | `scanJars()` | Scan for TLDs in JARs in /WEB-INF/lib.
    `protected void` | `scanJspConfig()` | Scan for TLDs defined in <jsp-config>.
    `protected void` | `scanPlatform()` | Scan for TLDs required by the platform specification.
    `protected void` | `scanResourcePaths​(java.lang.String startPath)` | Scan web application resources for TLDs, recursively.
    `void` | `setClassLoader​(java.lang.ClassLoader classLoader)` | Set the class loader used by the digester to create objects as a result of this scan.

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

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

- - ### Constructor Detail

    - #### TldScanner

          public TldScanner​(ServletContext context,
                            boolean namespaceAware,
                            boolean validation,
                            boolean blockExternal)

      Initialise with the application's ServletContext.
      Parameters:
        `context` - the application's servletContext
        `namespaceAware` - should the XML parser used to parse TLD files be configured to be name space aware
        `validation` - should the XML parser used to parse TLD files be configured to use validation
        `blockExternal` - should the XML parser used to parse TLD files be configured to be block references to external entities

  - ### Method Detail

    - #### scan

          public void scan()
                    throws java.io.IOException,
                           org.xml.sax.SAXException

      Scan for TLDs in all places defined by the specification:
      1. Tag libraries defined by the platform
      2. Entries from <jsp-config> in web.xml
      3. A resources under /WEB-INF
      4. In jar files from /WEB-INF/lib
      5. Additional entries from the container
      Throws:
        `java.io.IOException` - if there was a problem scanning for or loading a TLD
        `org.xml.sax.SAXException` - if there was a problem parsing a TLD

    - #### getUriTldResourcePathMap

          public java.util.Map<java.lang.String,​TldResourcePath> getUriTldResourcePathMap()

      Returns the map of URI to TldResourcePath built by this scanner.
      Returns:
        the map of URI to TldResourcePath

    - #### getTldResourcePathTaglibXmlMap

          public java.util.Map<TldResourcePath,​TaglibXml> getTldResourcePathTaglibXmlMap()

      Returns the map of TldResourcePath to parsed XML files built by this scanner.
      Returns:
        the map of TldResourcePath to parsed XML files

    - #### getListeners

          public java.util.List<java.lang.String> getListeners()

      Returns a list of all listeners declared by scanned TLDs.
      Returns:
        a list of listener class names

    - #### setClassLoader

          public void setClassLoader​(java.lang.ClassLoader classLoader)

      Set the class loader used by the digester to create objects as a result of this scan. Normally this only needs to be set when using JspC.
      Parameters:
        `classLoader` - Class loader to use when creating new objects while parsing TLDs

    - #### scanPlatform

          protected void scanPlatform()

      Scan for TLDs required by the platform specification.

    - #### scanJspConfig

          protected void scanJspConfig()
                                throws java.io.IOException,
                                       org.xml.sax.SAXException

      Scan for TLDs defined in <jsp-config>.
      Throws:
        `java.io.IOException` - Error reading resources
        `org.xml.sax.SAXException` - XML parsing error

    - #### scanResourcePaths

          protected void scanResourcePaths​(java.lang.String startPath)
                                    throws java.io.IOException,
                                           org.xml.sax.SAXException

      Scan web application resources for TLDs, recursively.
      Parameters:
        `startPath` - the directory resource to scan
      Throws:
        `java.io.IOException` - if there was a problem scanning for or loading a TLD
        `org.xml.sax.SAXException` - if there was a problem parsing a TLD

    - #### scanJars

          public void scanJars()

      Scan for TLDs in JARs in /WEB-INF/lib.

    - #### parseTld

          protected void parseTld​(java.lang.String resourcePath)
                           throws java.io.IOException,
                                  org.xml.sax.SAXException

      Throws:
        `java.io.IOException`
        `org.xml.sax.SAXException`

    - #### parseTld

          protected void parseTld​(TldResourcePath path)
                           throws java.io.IOException,
                                  org.xml.sax.SAXException

      Throws:
        `java.io.IOException`
        `org.xml.sax.SAXException`