## org.eclipse.jetty.server.handler
Class ScopedHandler

    java.lang.Object
      org.eclipse.jetty.util.component.AbstractLifeCycle
          org.eclipse.jetty.server.handler.AbstractHandler
              org.eclipse.jetty.server.handler.AbstractHandlerContainer
                  org.eclipse.jetty.server.handler.HandlerWrapper
                      org.eclipse.jetty.server.handler.ScopedHandler

All Implemented Interfaces:
  Handler, HandlerContainer, LifeCycle

Direct Known Subclasses:
  ContextHandler, ServletHandler, SessionHandler

    public abstract class ScopedHandler

extends HandlerWrapper

ScopedHandler. A ScopedHandler is a HandlerWrapper where the wrapped handlers each define a scope. When `handle(String, Request, HttpServletRequest, HttpServletResponse)` is called on the first ScopedHandler in a chain of HandlerWrappers, the `doScope(String, Request, HttpServletRequest, HttpServletResponse)` method is called on all contained ScopedHandlers, before the `doHandle(String, Request, HttpServletRequest, HttpServletResponse)` method is called on all contained handlers.

For example if Scoped handlers A, B & C were chained together, then the calling order would be:

###

###

###

###

###

###

###

###

###

###

     A.handle(...)
       A.doScope(...)
         B.doScope(...)
           C.doScope(...)
             A.doHandle(...)
               B.doHandle(...)
                  C.doHandle(...)

     If non scoped handler X was in the chained A, B, X & C, then
     the calling order would be:
     A.handle(...)
       A.doScope(...)
         B.doScope(...)
           C.doScope(...)
             A.doHandle(...)
               B.doHandle(...)
                 X.handle(...)
                   C.handle(...)
                     C.doHandle(...)

     A typical usage pattern is:
         private static class MyHandler extends ScopedHandler
         {
             public void doScope(String target, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
             {
                 try
                 {
                     setUpMyScope();
                     super.doScope(target,request,response);
                 }
                 finally
                 {
                     tearDownMyScope();
                 }
             }

             public void doHandle(String target, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
             {
                 try
                 {
                     doMyHandling();
                     super.doHandle(target,request,response);
                 }
                 finally
                 {
                     cleanupMyHandling();
                 }
             }
         }

    Nested Class Summary

    Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    AbstractLifeCycle.AbstractLifeCycleListener

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

    LifeCycle.Listener

    Field Summary

    protected  ScopedHandler
    _nextScope

    protected  ScopedHandler
    _outerScope

    Fields inherited from class org.eclipse.jetty.server.handler.HandlerWrapper

    _handler

    Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    _listeners, FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING

    Constructor Summary

    ScopedHandler()

    Method Summary

    abstract  void
    doHandle(String target,
             Request baseRequest,
             HttpServletRequest request,
             HttpServletResponse response)

    abstract  void
    doScope(String target,
            Request baseRequest,
            HttpServletRequest request,
            HttpServletResponse response)

    protected  void
    doStart()

     void
    handle(String target,
           Request baseRequest,
           HttpServletRequest request,
           HttpServletResponse response)

              Handle a request.

    protected  boolean
    never()

     void
    nextHandle(String target,
               Request baseRequest,
               HttpServletRequest request,
               HttpServletResponse response)

     void
    nextScope(String target,
              Request baseRequest,
              HttpServletRequest request,
              HttpServletResponse response)

    Methods inherited from class org.eclipse.jetty.server.handler.HandlerWrapper

    doStop, expandChildren, getHandler, getHandlers, getNestedHandlerByClass, setHandler, setServer

    Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandlerContainer

    dump, dumpHandlers, expandHandler, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass

    Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandler

    destroy, dump, dump, getServer, toString

    Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    addLifeCycleListener, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop

    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.LifeCycle

    addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop

    Field Detail

    _outerScope

    protected ScopedHandler _outerScope

    _nextScope

    protected ScopedHandler _nextScope

    Constructor Detail

    ScopedHandler

    public ScopedHandler()

    Method Detail

    doStart

    protected void doStart()
                    throws Exception

    Overrides:doStart in class HandlerWrapper

    Throws:
    ExceptionSee Also:HandlerWrapper.doStart()

    handle

    public final void handle(String target,
                             Request baseRequest,
                             HttpServletRequest request,
                             HttpServletResponse response)
                      throws IOException,
                             ServletException

    Description copied from interface: Handler
    Handle a request.

    Specified by:handle in interface HandlerOverrides:handle in class HandlerWrapper

    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()
     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()
     method can be used access the Response object if required.
    Throws:
    IOException
    ServletException

    doScope

    public abstract void doScope(String target,
                                 Request baseRequest,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
                          throws IOException,
                                 ServletException

    Throws:
    IOException
    ServletException

    nextScope

    public final void nextScope(String target,
                                Request baseRequest,
                                HttpServletRequest request,
                                HttpServletResponse response)
                         throws IOException,
                                ServletException

    Throws:
    IOException
    ServletException

    doHandle

    public abstract void doHandle(String target,
                                  Request baseRequest,
                                  HttpServletRequest request,
                                  HttpServletResponse response)
                           throws IOException,
                                  ServletException

    Throws:
    IOException
    ServletException

    nextHandle

    public final void nextHandle(String target,
                                 Request baseRequest,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
                          throws IOException,
                                 ServletException

    Throws:
    IOException
    ServletException

    never

    protected boolean never()

    Copyright © 1995-2010 Mort Bay Consulting. All Rights Reserved.