Class TldCache

java.lang.Object
org.apache.jasper.compiler.TldCache

public class TldCache extends Object
This class caches parsed instances of TLD files to remove the need for the same TLD to be parsed for each JSP that references it. It does not protect against multiple threads processing the same new TLD, but it does ensure that each all threads will use the same TLD object after parsing.
  • Field Details

    • SERVLET_CONTEXT_ATTRIBUTE_NAME

      public static final String SERVLET_CONTEXT_ATTRIBUTE_NAME
      The ServletContext attribute name used to store the TldCache instance.
  • Constructor Details

    • TldCache

      public TldCache(ServletContext servletContext, Map<String, TldResourcePath> uriTldResourcePathMap, Map<TldResourcePath, TaglibXml> tldResourcePathTaglibXmlMap)
      Creates a new TldCache.
      Parameters:
      servletContext - the servlet context
      uriTldResourcePathMap - the pre-scanned URI to resource path mappings
      tldResourcePathTaglibXmlMap - the pre-parsed TLD data
  • Method Details

    • getInstance

      public static TldCache getInstance(ServletContext servletContext)
      Returns the TldCache instance for the given servlet context.
      Parameters:
      servletContext - the servlet context
      Returns:
      the TldCache instance
    • getTldResourcePath

      public TldResourcePath getTldResourcePath(String uri)
      Returns the resource path for the given TLD URI.
      Parameters:
      uri - the TLD URI
      Returns:
      the resource path, or null if not found
    • getTaglibXml

      public TaglibXml getTaglibXml(TldResourcePath tldResourcePath) throws JasperException
      Returns the parsed tag library XML for the given resource path.
      Parameters:
      tldResourcePath - the TLD resource path
      Returns:
      the parsed tag library XML, or null if not found
      Throws:
      JasperException - if an error occurs during parsing