Class JspServletWrapper

java.lang.Object
org.apache.jasper.servlet.JspServletWrapper

public class JspServletWrapper extends 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 Details

    • JspServletWrapper

      public JspServletWrapper(ServletConfig config, Options options, 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, 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 Details

    • 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
    • getServlet

      public Servlet getServlet() throws ServletException
      Gets the servlet, compiling and loading it if necessary.
      Returns:
      the servlet
      Throws:
      ServletException - if an error occurs
    • 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 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 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 Map<String,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 String getJspUri()
      Returns the JSP URI.
      Returns:
      the JSP URI
    • getUnloadHandle

      public FastRemovalDequeue<JspServletWrapper>.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, IOException, 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
      IOException - if an I/O error occurs
      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(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