Class ChainProcessor

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public class ChainProcessor
    extends ChainServlet

    Custom subclass of ChainServlet that also dispatches incoming requests to a configurable Command loaded from the specified Catalog.

    In addition to the servlet init parameters supported by ChainServlet, this class supports the following additional parameters:

    • org.apache.commons.chain.CATALOG - Name of the catalog from which to acquire commands to be executed. If not specified, the default catalog for this application will be used.
    • org.apache.commons.chain.COMMAND - Name of the Command (looked up in our configured Catalog used to process all incoming servlet requests. If not specified, defaults to command.

    Also, the org.apache.commons.chain.CONFIG_ATTR init parameter is also used to identify the Context attribute under which our configured Catalog will be made available to Commands processing our requests, in addition to its definition of the ServletContext attribute key under which the Catalog is available.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String attribute
      The name of the context attribute under which our Catalog is stored.
      private java.lang.String catalog
      The name of the Catalog to retrieve from the CatalogFactory for this application, or null to select the default Catalog.
      static java.lang.String CATALOG
      The name of the servlet init parameter containing the name of the Catalog to use for processing incoming requests.
      static java.lang.String CATALOG_DEFAULT
      The default request attribute under which we expose the Catalog being used to subordinate Commands.
      private java.lang.String command
      The name of the Command to be executed for each incoming request.
      static java.lang.String COMMAND
      The name of the servlet init parameter containing the name of the Command (loaded from our configured Catalog to use for processing each incoming request.
      private static java.lang.String COMMAND_DEFAULT
      The default command name.
    • Constructor Summary

      Constructors 
      Constructor Description
      ChainProcessor()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void destroy()
      Clean up as this application is shut down.
      void init()
      Cache the name of the command we should execute for each request.
      void service​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Configure a ServletWebContext for the current request, and pass it to the execute() method of the specified Command, loaded from our configured Catalog.
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
      • Methods inherited from class javax.servlet.GenericServlet

        getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • CATALOG

        public static final java.lang.String CATALOG

        The name of the servlet init parameter containing the name of the Catalog to use for processing incoming requests.

        See Also:
        Constant Field Values
      • CATALOG_DEFAULT

        public static final java.lang.String CATALOG_DEFAULT

        The default request attribute under which we expose the Catalog being used to subordinate Commands.

        See Also:
        Constant Field Values
      • COMMAND

        public static final java.lang.String COMMAND

        The name of the servlet init parameter containing the name of the Command (loaded from our configured Catalog to use for processing each incoming request.

        See Also:
        Constant Field Values
      • COMMAND_DEFAULT

        private static final java.lang.String COMMAND_DEFAULT

        The default command name.

        See Also:
        Constant Field Values
      • attribute

        private java.lang.String attribute

        The name of the context attribute under which our Catalog is stored. This value is also used as the name of the context attribute under which the catalog is exposed to commands. If not specified, we will look up commands in the appropriate Catalog retrieved from our CatalogFactory.

      • catalog

        private java.lang.String catalog

        The name of the Catalog to retrieve from the CatalogFactory for this application, or null to select the default Catalog.

      • command

        private java.lang.String command

        The name of the Command to be executed for each incoming request.

    • Constructor Detail

      • ChainProcessor

        public ChainProcessor()
    • Method Detail

      • destroy

        public void destroy()

        Clean up as this application is shut down.

        Specified by:
        destroy in interface javax.servlet.Servlet
        Overrides:
        destroy in class ChainServlet
      • init

        public void init()
                  throws javax.servlet.ServletException

        Cache the name of the command we should execute for each request.

        Overrides:
        init in class ChainServlet
        Throws:
        javax.servlet.ServletException - if an initialization error occurs
      • service

        public void service​(javax.servlet.http.HttpServletRequest request,
                            javax.servlet.http.HttpServletResponse response)
                     throws java.io.IOException,
                            javax.servlet.ServletException

        Configure a ServletWebContext for the current request, and pass it to the execute() method of the specified Command, loaded from our configured Catalog.

        Overrides:
        service in class ChainServlet
        Parameters:
        request - The request we are processing
        response - The response we are creating
        Throws:
        java.io.IOException - if an input/output error occurs
        javax.servlet.ServletException - if a servlet exception occurs