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
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();
}
}
}
Method Summary |
abstract void |
doHandle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
|
abstract void |
doScope(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
|
protected void |
doStart()
|
void |
handle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Handle a request. |
void |
nextHandle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
|
void |
nextScope(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
|
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 |
_outerScope
protected ScopedHandler _outerScope
_nextScope
protected ScopedHandler _nextScope
ScopedHandler
public ScopedHandler()
doStart
protected void doStart()
throws java.lang.Exception
- Overrides:
doStart
in class HandlerWrapper
- Throws:
java.lang.Exception
- See Also:
HandlerWrapper.doStart()
handle
public final 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
- Overrides:
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:
java.io.IOException
javax.servlet.ServletException
doScope
public abstract void doScope(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException,
javax.servlet.ServletException
- Throws:
java.io.IOException
javax.servlet.ServletException
nextScope
public final void nextScope(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException,
javax.servlet.ServletException
- Throws:
java.io.IOException
javax.servlet.ServletException
doHandle
public abstract void doHandle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException,
javax.servlet.ServletException
- Throws:
java.io.IOException
javax.servlet.ServletException
nextHandle
public final void nextHandle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException,
javax.servlet.ServletException
- Throws:
java.io.IOException
javax.servlet.ServletException
Copyright © 1995-2009 Mort Bay Consulting. All Rights Reserved.