Class JspServletWrapper


  • public class JspServletWrapper
    extends java.lang.Object
    Holds the per-JSP (or tag file) state for the Jasper JSP engine: manages compilation on first use, reloading, and participation in the JSP unload queue.
    • Constructor Detail

      • JspServletWrapper

        public JspServletWrapper​(ServletConfig config,
                                 Options options,
                                 java.lang.String jspUri,
                                 JspRuntimeContext rctxt)
        Constructs a JspServletWrapper for JSP pages.
        Parameters:
        config - The servlet config
        options - The options
        jspUri - The JSP URI
        rctxt - The runtime context
      • JspServletWrapper

        public JspServletWrapper​(ServletContext servletContext,
                                 Options options,
                                 java.lang.String tagFilePath,
                                 TagInfo tagInfo,
                                 JspRuntimeContext rctxt,
                                 Jar tagJar)
        Constructs a JspServletWrapper for tag files.
        Parameters:
        servletContext - The servlet context
        options - The options
        tagFilePath - The tag file path
        tagInfo - The tag info
        rctxt - The runtime context
        tagJar - The tag JAR
    • Method Detail

      • getJspEngineContext

        public JspCompilationContext getJspEngineContext()
        Returns the JSP compilation context.
        Returns:
        the compilation context
      • setReload

        public void setReload​(boolean reload)
        Sets the reload flag.
        Parameters:
        reload - The reload flag
      • getReload

        public boolean getReload()
        Returns the reload flag.
        Returns:
        the reload flag
      • getServletContext

        public ServletContext getServletContext()
        Returns the servlet context.
        Returns:
        the servlet context
      • setCompilationException

        public void setCompilationException​(JasperException je)
        Sets the compilation exception for this JspServletWrapper.
        Parameters:
        je - The compilation exception
      • setServletClassLastModifiedTime

        public void setServletClassLastModifiedTime​(long lastModified)
        Sets the last-modified time of the servlet class file associated with this JspServletWrapper.
        Parameters:
        lastModified - Last-modified time of servlet class
      • loadTagFile

        public java.lang.Class<?> loadTagFile()
                                       throws JasperException
        Compile (if needed) and load a tag file.
        Returns:
        the loaded class
        Throws:
        JasperException - Error compiling or loading tag file
      • loadTagFilePrototype

        public java.lang.Class<?> loadTagFilePrototype()
                                                throws JasperException
        Compile and load a prototype for the Tag file. This is needed when compiling tag files with circular dependencies. A prototype (skeleton) with no dependencies on other tag files is generated and compiled.
        Returns:
        the loaded class
        Throws:
        JasperException - Error compiling or loading tag file
      • getDependants

        public java.util.Map<java.lang.String,​java.lang.Long> getDependants()
        Get a list of files that the current page has source dependency on.
        Returns:
        the map of dependent resources
      • isTagFile

        public boolean isTagFile()
        Returns whether this wrapper is for a tag file.
        Returns:
        true if this is a tag file
      • incTripCount

        public int incTripCount()
        Increments and returns the trip count.
        Returns:
        the trip count before incrementing
      • decTripCount

        public int decTripCount()
        Decrements and returns the trip count.
        Returns:
        the trip count after decrementing
      • getJspUri

        public java.lang.String getJspUri()
        Returns the JSP URI.
        Returns:
        the JSP URI
      • getUnloadHandle

        public FastRemovalDequeue.Entry getUnloadHandle()
        Returns the unload handle for managing JSP unloading.
        Returns:
        the unload handle
      • service

        public void service​(HttpServletRequest request,
                            HttpServletResponse response,
                            boolean precompile)
                     throws ServletException,
                            java.io.IOException,
                            java.io.FileNotFoundException
        Services the request, compiling and loading the servlet if necessary.
        Parameters:
        request - The HTTP request
        response - The HTTP response
        precompile - Whether this is a precompile-only request
        Throws:
        ServletException - if a servlet error occurs
        java.io.IOException - if an I/O error occurs
        java.io.FileNotFoundException - if the JSP file is not found
      • destroy

        public void destroy()
        Destroys the wrapped servlet, if any.
      • getLastModificationTest

        public long getLastModificationTest()
        Returns the timestamp of the last modification test.
        Returns:
        the timestamp of the last modification test
      • setLastModificationTest

        public void setLastModificationTest​(long lastModificationTest)
        Sets the timestamp of the last modification test.
        Parameters:
        lastModificationTest - The timestamp to set
      • getLastUsageTime

        public long getLastUsageTime()
        Returns the timestamp of the last usage.
        Returns:
        the timestamp of the last usage
      • handleJspException

        protected JasperException handleJspException​(java.lang.Exception ex)

        Attempts to construct a JasperException that contains helpful information about what went wrong. Uses the JSP compiler system to translate the line number in the generated servlet that originated the exception to a line number in the JSP. Then constructs an exception containing that information, and a snippet of the JSP to help debugging. Please see BZ 37062 for more details.

        Parameters:
        ex - the exception that was the cause of the problem.
        Returns:
        a JasperException with more detailed information