Class HandlerCollection

  • All Implemented Interfaces:
    Handler, HandlerContainer, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle
    Direct Known Subclasses:
    ContextHandlerCollection, HandlerList

    @ManagedObject("Handler of multiple handlers")
    public class HandlerCollection
    extends AbstractHandlerContainer
    A collection of handlers.

    The default implementations calls all handlers in list order, regardless of the response status or exceptions. Derived implementation may alter the order or the conditions of calling the contained handlers.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  HandlerCollection.Handlers  
      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.concurrent.atomic.AtomicReference<HandlerCollection.Handlers> _handlers  
      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addHandler​(Handler handler)
      Adds a handler.
      void destroy()  
      protected void expandChildren​(java.util.List<Handler> list, java.lang.Class<?> byClass)  
      Handler[] getHandlers()  
      void handle​(java.lang.String target, Request baseRequest, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Handle a request.
      protected HandlerCollection.Handlers newHandlers​(Handler[] handlers)  
      void prependHandler​(Handler handler)
      Prepends a handler.
      void removeHandler​(Handler handler)  
      void setHandlers​(Handler[] handlers)  
      protected boolean updateHandlers​(HandlerCollection.Handlers old, HandlerCollection.Handlers handlers)  
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
      • Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

        addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
    • Constructor Detail

      • HandlerCollection

        public HandlerCollection()
      • HandlerCollection

        public HandlerCollection​(Handler... handlers)
      • HandlerCollection

        public HandlerCollection​(boolean mutableWhenRunning,
                                 Handler... handlers)
    • Method Detail

      • getHandlers

        @ManagedAttribute(value="Wrapped handlers",
                          readonly=true)
        public Handler[] getHandlers()
        Returns:
        the array of handlers.
      • setHandlers

        public void setHandlers​(Handler[] handlers)
        Parameters:
        handlers - the array of handlers to set.
      • handle

        public void handle​(java.lang.String target,
                           Request baseRequest,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
                    throws java.io.IOException,
                           javax.servlet.ServletException
        Description copied from interface: Handler
        Handle a request.
        Specified by:
        handle in interface Handler
        Specified by:
        handle in class AbstractHandler
        Parameters:
        target - The target of the request - either a URI or a name.
        baseRequest - The original unwrapped request object.
        request - The request either as the Request object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getRequest() method can be used access the Request object if required.
        response - The response as the Response object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getResponse() method can be used access the Response object if required.
        Throws:
        java.io.IOException - if unable to handle the request or response processing
        javax.servlet.ServletException - if unable to handle the request or response due to underlying servlet issue
      • addHandler

        public void addHandler​(Handler handler)
        Adds a handler. This implementation adds the passed handler to the end of the existing collection of handlers. If the handler is already added, it is removed and readded
      • prependHandler

        public void prependHandler​(Handler handler)
        Prepends a handler. This implementation adds the passed handler to the start of the existing collection of handlers.
      • removeHandler

        public void removeHandler​(Handler handler)
      • destroy

        public void destroy()
        Specified by:
        destroy in interface org.eclipse.jetty.util.component.Destroyable
        Specified by:
        destroy in interface Handler
        Overrides:
        destroy in class AbstractHandler