Interface Wrapper

All Superinterfaces:
Container, Lifecycle
All Known Implementing Classes:
StandardWrapper, Tomcat.ExistingStandardWrapper

public interface Wrapper extends Container
A Wrapper is a Container that represents an individual servlet definition from the deployment descriptor of the web application. It provides a convenient mechanism to use Interceptors that see every single request to the servlet represented by this definition.

Implementations of Wrapper are responsible for managing the servlet life cycle for their underlying servlet class, including calling init() and destroy() at appropriate times, as well as respecting the existence of the SingleThreadModel declaration on the servlet class itself.

The parent Container attached to a Wrapper will generally be an implementation of Context, representing the servlet context (and therefore the web application) within which this servlet executes.

Child Containers are not allowed on Wrapper implementations, so the addChild() method should throw an IllegalArgumentException.

Author:
Craig R. McClanahan
  • Field Details

  • Method Details

    • getAvailable

      long getAvailable()
      Returns:
      the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, the servlet is currently available. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.
    • setAvailable

      void setAvailable(long available)
      Set the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.
      Parameters:
      available - The new available date/time
    • getLoadOnStartup

      int getLoadOnStartup()
      Returns:
      the load-on-startup order value (negative value means load on first call).
    • setLoadOnStartup

      void setLoadOnStartup(int value)
      Set the load-on-startup order value (negative value means load on first call).
      Parameters:
      value - New load-on-startup value
    • getRunAs

      String getRunAs()
      Returns:
      the run-as identity for this servlet.
    • setRunAs

      void setRunAs(String runAs)
      Set the run-as identity for this servlet.
      Parameters:
      runAs - New run-as identity value
    • getServletClass

      String getServletClass()
      Returns:
      the fully qualified servlet class name for this servlet.
    • setServletClass

      void setServletClass(String servletClass)
      Set the fully qualified servlet class name for this servlet.
      Parameters:
      servletClass - Servlet class name
    • getServletMethods

      String[] getServletMethods() throws ServletException
      Gets the names of the methods supported by the underlying servlet. This is the same set of methods included in the Allow response header in response to an OPTIONS request method processed by the underlying servlet.
      Returns:
      Array of names of the methods supported by the underlying servlet
      Throws:
      ServletException - If the target servlet cannot be loaded
    • isUnavailable

      boolean isUnavailable()
      Returns:
      true if this Servlet is currently unavailable.
    • getServlet

      Servlet getServlet()
      Returns:
      the associated Servlet instance.
    • setServlet

      void setServlet(Servlet servlet)
      Set the associated Servlet instance
      Parameters:
      servlet - The associated Servlet
    • addInitParameter

      void addInitParameter(String name, String value)
      Add a new servlet initialization parameter for this servlet.
      Parameters:
      name - Name of this initialization parameter to add
      value - Value of this initialization parameter to add
    • addMapping

      void addMapping(String mapping)
      Add a mapping associated with the Wrapper.
      Parameters:
      mapping - The new wrapper mapping
    • addSecurityReference

      void addSecurityReference(String name, String link)
      Add a new security role reference record to the set of records for this servlet.
      Parameters:
      name - Role name used within this servlet
      link - Role name used within the web application
    • allocate

      Servlet allocate() throws ServletException
      Allocate an initialized instance of this Servlet that is ready to have its service() method called. If the Servlet class does not implement SingleThreadModel, the (only) initialized instance may be returned immediately. If the Servlet class implements SingleThreadModel, the Wrapper implementation must ensure that this instance is not allocated again until it is deallocated by a call to deallocate().
      Returns:
      a new Servlet instance
      Throws:
      ServletException - if the Servlet init() method threw an exception
      ServletException - if a loading error occurs
    • deallocate

      void deallocate(Servlet servlet) throws ServletException
      Return this previously allocated servlet to the pool of available instances. If this servlet class does not implement SingleThreadModel, no action is actually required.
      Parameters:
      servlet - The servlet to be returned
      Throws:
      ServletException - if a deallocation error occurs
    • findInitParameter

      String findInitParameter(String name)
      Parameters:
      name - Name of the requested initialization parameter
      Returns:
      the value for the specified initialization parameter name, if any; otherwise return null.
    • findInitParameters

      String[] findInitParameters()
      Returns:
      the names of all defined initialization parameters for this servlet.
    • findMappings

      String[] findMappings()
      Returns:
      the mappings associated with this wrapper.
    • findSecurityReference

      String findSecurityReference(String name)
      Parameters:
      name - Security role reference used within this servlet
      Returns:
      the security role link for the specified security role reference name, if any; otherwise return null.
    • findSecurityReferences

      String[] findSecurityReferences()
      Returns:
      the set of security role reference names associated with this servlet, if any; otherwise return a zero-length array.
    • incrementErrorCount

      void incrementErrorCount()
      Increment the error count value used when monitoring.
    • load

      void load() throws ServletException
      Load and initialize an instance of this Servlet, if there is not already at least one initialized instance. This can be used, for example, to load Servlets that are marked in the deployment descriptor to be loaded at server startup time.
      Throws:
      ServletException - if the Servlet init() method threw an exception or if some other loading problem occurs
    • removeInitParameter

      void removeInitParameter(String name)
      Remove the specified initialization parameter from this Servlet.
      Parameters:
      name - Name of the initialization parameter to remove
    • removeMapping

      void removeMapping(String mapping)
      Remove a mapping associated with the wrapper.
      Parameters:
      mapping - The pattern to remove
    • removeSecurityReference

      void removeSecurityReference(String name)
      Remove any security role reference for the specified role name.
      Parameters:
      name - Security role used within this servlet to be removed
    • unavailable

      void unavailable(UnavailableException unavailable)
      Process an UnavailableException, marking this Servlet as unavailable for the specified amount of time.
      Parameters:
      unavailable - The exception that occurred, or null to mark this Servlet as permanently unavailable
    • unload

      void unload() throws ServletException
      Unload all initialized instances of this servlet, after calling the destroy() method for each instance. This can be used, for example, prior to shutting down the entire servlet engine, or prior to reloading all of the classes from the Loader associated with our Loader's repository.
      Throws:
      ServletException - if an unload error occurs
    • getMultipartConfigElement

      MultipartConfigElement getMultipartConfigElement()
      Returns:
      the multi-part configuration for the associated Servlet. If no multi-part configuration has been defined, then null will be returned.
    • setMultipartConfigElement

      void setMultipartConfigElement(MultipartConfigElement multipartConfig)
      Set the multi-part configuration for the associated Servlet. To clear the multi-part configuration specify null as the new value.
      Parameters:
      multipartConfig - The configuration associated with the Servlet
    • isAsyncSupported

      boolean isAsyncSupported()
      Does the associated Servlet support async processing? Defaults to false.
      Returns:
      true if the Servlet supports async
    • setAsyncSupported

      void setAsyncSupported(boolean asyncSupport)
      Set the async support for the associated Servlet.
      Parameters:
      asyncSupport - the new value
    • isEnabled

      boolean isEnabled()
      Is the associated Servlet enabled? Defaults to true.
      Returns:
      true if the Servlet is enabled
    • setEnabled

      void setEnabled(boolean enabled)
      Sets the enabled attribute for the associated servlet.
      Parameters:
      enabled - the new value
    • setServletSecurityAnnotationScanRequired

      @Deprecated void setServletSecurityAnnotationScanRequired(boolean b)
      Deprecated.
      This will be removed in Tomcat 9.
      This method is no longer used. All implementations should be NO-OPs.
      Parameters:
      b - Unused.
    • servletSecurityAnnotationScan

      @Deprecated void servletSecurityAnnotationScan() throws ServletException
      Deprecated.
      This will be removed in Tomcat 9.
      This method is no longer used. All implementations should be NO-OPs.
      Throws:
      ServletException - Never thrown
    • isOverridable

      boolean isOverridable()
      Is the Servlet overridable by a ServletContainerInitializer?
      Returns:
      true if the Servlet can be overridden in a ServletContainerInitializer
    • setOverridable

      void setOverridable(boolean overridable)
      Sets the overridable attribute for this Servlet.
      Parameters:
      overridable - the new value