public abstract class ScopedHandler extends HandlerWrapper
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(); } } }
AbstractHandler.ErrorDispatchHandler
AbstractLifeCycle.AbstractLifeCycleListener
LifeCycle.Listener
Container.InheritedListener, Container.Listener
Constructor and Description |
---|
ScopedHandler() |
Modifier and Type | Method and Description |
---|---|
abstract void |
doHandle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
Do the handler work within the scope.
|
void |
doScope(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
Scope the handler
|
void |
handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
------------------------------------------------------------
|
void |
nextHandle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response) |
void |
nextScope(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
Scope the handler
|
destroy, getHandler, getHandlers, insertHandler, setHandler
findContainerOf, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass, setServer
getServer
addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dump, dumpObject, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, unmanage, updateBean, updateBean, updateBeans
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, start, stop, stop
dumpContainer, dumpIterable, dumpMapEntries, dumpObjects, dumpSelf, named
public final void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
handle
in interface Handler
handle
in class HandlerWrapper
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.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
Derived implementations should call nextScope(String, Request, HttpServletRequest, HttpServletResponse)
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.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic final void nextScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
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.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic abstract void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
Derived implementations should call nextHandle(String, Request, HttpServletRequest, HttpServletResponse)
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.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic final void nextHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
IOException
ServletException
Copyright © 2010 - 2020 Adobe. All Rights Reserved