org.eclipse.jetty.servlet
Class ServletHandler

java.lang.Object
  extended by org.eclipse.jetty.util.component.AbstractLifeCycle
      extended by org.eclipse.jetty.server.handler.AbstractHandler
          extended by org.eclipse.jetty.server.handler.AbstractHandlerContainer
              extended by org.eclipse.jetty.server.handler.HandlerWrapper
                  extended by org.eclipse.jetty.server.handler.ScopedHandler
                      extended by org.eclipse.jetty.servlet.ServletHandler
All Implemented Interfaces:
Handler, HandlerContainer, LifeCycle
Direct Known Subclasses:
ServletHandler

public class ServletHandler
extends ScopedHandler

Servlet HttpHandler. This handler maps requests to servlets that implement the javax.servlet.http.HttpServlet API.

This handler does not implement the full J2EE features and is intended to be used when a full web application is not required. Specifically filters and request wrapping are not supported. Unless run as part of a ServletContextHandler or derivative, the initialize() method must be called manually after start().

See Also:
WebAppContext

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
 
Field Summary
static String __DEFAULT_SERVLET
           
protected  ConcurrentHashMap[] _chainCache
           
 
Fields inherited from class org.eclipse.jetty.server.handler.ScopedHandler
_nextScope, _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
ServletHandler()
          Constructor.
 
Method Summary
 void addFilter(FilterHolder filter)
          Convenience method to add a preconstructed FilterHolder
 void addFilter(FilterHolder filter, FilterMapping filterMapping)
          convenience method to add a filter and mapping
 FilterHolder addFilter(String className, String pathSpec, int dispatches)
          Deprecated.  
 void addFilterMapping(FilterMapping mapping)
          Convenience method to add a preconstructed FilterMapping
 FilterHolder addFilterWithMapping(Class<? extends Filter> filter, String pathSpec, int dispatches)
          conveniance method to add a filter.
 void addFilterWithMapping(FilterHolder holder, String pathSpec, int dispatches)
          conveniance method to add a filter.
 FilterHolder addFilterWithMapping(String className, String pathSpec, int dispatches)
          conveniance method to add a filter.
 void addServlet(ServletHolder holder)
          Convenience method to add a pre-constructed ServletHolder.
 ServletHolder addServlet(String className, String pathSpec)
          Deprecated.  
 void addServletMapping(ServletMapping mapping)
          Convenience method to add a pre-constructed ServletMapping.
 ServletHolder addServletWithMapping(Class<? extends Servlet> servlet, String pathSpec)
          conveniance method to add a servlet.
 void addServletWithMapping(ServletHolder servlet, String pathSpec)
          conveniance method to add a servlet.
 ServletHolder addServletWithMapping(String className, String pathSpec)
          conveniance method to add a servlet.
 Filter customizeFilter(Filter filter)
          Customize a Filter.
 Filter customizeFilterDestroy(Filter filter)
           
 Servlet customizeServlet(Servlet servlet)
          Customize a servlet.
 Servlet customizeServletDestroy(Servlet servlet)
           
 void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
           
 void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
           
protected  void doStart()
           
protected  void doStop()
           
protected  void dump(StringBuilder b, String indent)
           
 Object getContextLog()
           
 FilterHolder getFilter(String name)
           
 FilterMapping[] getFilterMappings()
           
 FilterHolder[] getFilters()
          Get Filters.
 PathMap.Entry getHolderEntry(String pathInContext)
          ServletHolder matching path.
 int getMaxFilterChainsCacheSize()
           
 RequestDispatcher getRequestDispatcher(String uriInContext)
           
 ServletHolder getServlet(String name)
           
 ServletContext getServletContext()
           
 ServletMapping[] getServletMappings()
           
 ServletHolder[] getServlets()
          Get Servlets.
 void initialize()
          Initialize filters and load-on-startup servlets.
 boolean isAvailable()
           
 boolean isFilterChainsCached()
           
 boolean isInitializeAtStart()
          Deprecated.  
 boolean isStartWithUnavailable()
           
 boolean matchesPath(String pathInContext)
          Whether there is a ServletHolder that matches this path
 FilterHolder newFilterHolder()
           
 FilterHolder newFilterHolder(Class<? extends Filter> filter)
           
 ServletHolder newServletHolder()
          see also newServletHolder(Class)
 ServletHolder newServletHolder(Class servlet)
           
protected  void notFound(HttpServletRequest request, HttpServletResponse response)
           
 void prependFilterMapping(FilterMapping mapping)
          Convenience method to add a preconstructed FilterMapping
 void setFilterChainsCached(boolean filterChainsCached)
           
 void setFilterMappings(FilterMapping[] filterMappings)
           
 void setFilters(FilterHolder[] holders)
           
 void setInitializeAtStart(boolean initializeAtStart)
          Deprecated.  
 void setMaxFilterChainsCacheSize(int maxFilterChainsCacheSize)
          Set the maximum filter chain cache size.
 void setServer(Server server)
           
 void setServletMappings(ServletMapping[] servletMappings)
           
 void setServlets(ServletHolder[] holders)
          Set Servlets.
 void setStartWithUnavailable(boolean start)
           
protected  void updateMappings()
           
protected  void updateNameMappings()
           
 
Methods inherited from class org.eclipse.jetty.server.handler.ScopedHandler
handle, nextHandle, nextScope
 
Methods inherited from class org.eclipse.jetty.server.handler.HandlerWrapper
expandChildren, getHandler, getHandlers, setHandler
 
Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandlerContainer
expandHandler, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass
 
Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandler
destroy, 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

__DEFAULT_SERVLET

public static final String __DEFAULT_SERVLET
See Also:
Constant Field Values

_chainCache

protected transient ConcurrentHashMap[] _chainCache
Constructor Detail

ServletHandler

public ServletHandler()
Constructor.

Method Detail

setServer

public void setServer(Server server)
Specified by:
setServer in interface Handler
Overrides:
setServer in class HandlerWrapper

doStart

protected void doStart()
                throws Exception
Overrides:
doStart in class ScopedHandler
Throws:
Exception
See Also:
HandlerWrapper.doStart()

doStop

protected void doStop()
               throws Exception
Overrides:
doStop in class HandlerWrapper
Throws:
Exception

getContextLog

public Object getContextLog()
Returns:
Returns the contextLog.

getFilterMappings

public FilterMapping[] getFilterMappings()
Returns:
Returns the filterMappings.

getFilters

public FilterHolder[] getFilters()
Get Filters.

Returns:
Array of defined servlets

getHolderEntry

public PathMap.Entry getHolderEntry(String pathInContext)
ServletHolder matching path.

Parameters:
pathInContext - Path within _context.
Returns:
PathMap Entries pathspec to ServletHolder

matchesPath

public boolean matchesPath(String pathInContext)
Whether there is a ServletHolder that matches this path

Parameters:
pathInContext - Path within _context.
Returns:
whether there is a ServletHolder that matches this path

getRequestDispatcher

public RequestDispatcher getRequestDispatcher(String uriInContext)
Parameters:
uriInContext - uri to get dispatcher for
Returns:
A dispatcher wrapping the resource at uriInContext, or null if the specified uri cannot be dispatched to.

getServletContext

public ServletContext getServletContext()

getServletMappings

public ServletMapping[] getServletMappings()
Returns:
Returns the servletMappings.

getServlets

public ServletHolder[] getServlets()
Get Servlets.

Returns:
Array of defined servlets

getServlet

public ServletHolder getServlet(String name)

doScope

public void doScope(String target,
                    Request baseRequest,
                    HttpServletRequest request,
                    HttpServletResponse response)
             throws IOException,
                    ServletException
Specified by:
doScope in class ScopedHandler
Throws:
IOException
ServletException

doHandle

public void doHandle(String target,
                     Request baseRequest,
                     HttpServletRequest request,
                     HttpServletResponse response)
              throws IOException,
                     ServletException
Specified by:
doHandle in class ScopedHandler
Throws:
IOException
ServletException

isInitializeAtStart

public boolean isInitializeAtStart()
Deprecated. 

Returns:
Returns the initializeAtStart.

setInitializeAtStart

public void setInitializeAtStart(boolean initializeAtStart)
Deprecated. 

Parameters:
initializeAtStart - The initializeAtStart to set.

isAvailable

public boolean isAvailable()
Returns:
true if the handler is started and there are no unavailable servlets

setStartWithUnavailable

public void setStartWithUnavailable(boolean start)
Parameters:
start - True if this handler will start with unavailable servlets

isStartWithUnavailable

public boolean isStartWithUnavailable()
Returns:
True if this handler will start with unavailable servlets

initialize

public void initialize()
                throws Exception
Initialize filters and load-on-startup servlets. Called automatically from start if autoInitializeServlet is true.

Throws:
Exception

isFilterChainsCached

public boolean isFilterChainsCached()
Returns:
Returns the filterChainsCached.

newServletHolder

public ServletHolder newServletHolder()
see also newServletHolder(Class)


newServletHolder

public ServletHolder newServletHolder(Class servlet)

addServletWithMapping

public ServletHolder addServletWithMapping(String className,
                                           String pathSpec)
conveniance method to add a servlet.

Returns:
The servlet holder.

addServletWithMapping

public ServletHolder addServletWithMapping(Class<? extends Servlet> servlet,
                                           String pathSpec)
conveniance method to add a servlet.

Returns:
The servlet holder.

addServletWithMapping

public void addServletWithMapping(ServletHolder servlet,
                                  String pathSpec)
conveniance method to add a servlet.

Parameters:
servlet - servlet holder to add
pathSpec - servlet mappings for the servletHolder

addServlet

public ServletHolder addServlet(String className,
                                String pathSpec)
Deprecated. 

Convenience method to add a servlet with a servlet mapping.

Parameters:
className -
pathSpec -
Returns:

addServlet

public void addServlet(ServletHolder holder)
Convenience method to add a pre-constructed ServletHolder.

Parameters:
holder -

addServletMapping

public void addServletMapping(ServletMapping mapping)
Convenience method to add a pre-constructed ServletMapping.

Parameters:
mapping -

newFilterHolder

public FilterHolder newFilterHolder(Class<? extends Filter> filter)

newFilterHolder

public FilterHolder newFilterHolder()
See Also:
#newFilterHolder(Class)}

getFilter

public FilterHolder getFilter(String name)

addFilterWithMapping

public FilterHolder addFilterWithMapping(Class<? extends Filter> filter,
                                         String pathSpec,
                                         int dispatches)
conveniance method to add a filter.

Parameters:
filter - class of filter to create
pathSpec - filter mappings for filter
dispatches - see FilterMapping.setDispatches(int)
Returns:
The filter holder.

addFilterWithMapping

public FilterHolder addFilterWithMapping(String className,
                                         String pathSpec,
                                         int dispatches)
conveniance method to add a filter.

Parameters:
className - of filter
pathSpec - filter mappings for filter
dispatches - see FilterMapping.setDispatches(int)
Returns:
The filter holder.

addFilterWithMapping

public void addFilterWithMapping(FilterHolder holder,
                                 String pathSpec,
                                 int dispatches)
conveniance method to add a filter.

Parameters:
holder - filter holder to add
pathSpec - filter mappings for filter
dispatches - see FilterMapping.setDispatches(int)

addFilter

public FilterHolder addFilter(String className,
                              String pathSpec,
                              int dispatches)
Deprecated. 

Convenience method to add a filter with a mapping

Parameters:
className -
pathSpec -
dispatches -
Returns:

addFilter

public void addFilter(FilterHolder filter,
                      FilterMapping filterMapping)
convenience method to add a filter and mapping

Parameters:
filter -
filterMapping -

addFilter

public void addFilter(FilterHolder filter)
Convenience method to add a preconstructed FilterHolder

Parameters:
filter -

addFilterMapping

public void addFilterMapping(FilterMapping mapping)
Convenience method to add a preconstructed FilterMapping

Parameters:
mapping -

prependFilterMapping

public void prependFilterMapping(FilterMapping mapping)
Convenience method to add a preconstructed FilterMapping

Parameters:
mapping -

updateNameMappings

protected void updateNameMappings()

updateMappings

protected void updateMappings()

notFound

protected void notFound(HttpServletRequest request,
                        HttpServletResponse response)
                 throws IOException
Throws:
IOException

setFilterChainsCached

public void setFilterChainsCached(boolean filterChainsCached)
Parameters:
filterChainsCached - The filterChainsCached to set.

setFilterMappings

public void setFilterMappings(FilterMapping[] filterMappings)
Parameters:
filterMappings - The filterMappings to set.

setFilters

public void setFilters(FilterHolder[] holders)

setServletMappings

public void setServletMappings(ServletMapping[] servletMappings)
Parameters:
servletMappings - The servletMappings to set.

setServlets

public void setServlets(ServletHolder[] holders)
Set Servlets.

Parameters:
holders - Array of servletsto define

getMaxFilterChainsCacheSize

public int getMaxFilterChainsCacheSize()
Returns:
The maximum entries in a filter chain cache.

setMaxFilterChainsCacheSize

public void setMaxFilterChainsCacheSize(int maxFilterChainsCacheSize)
Set the maximum filter chain cache size. Filter chains are cached if isFilterChainsCached() is true. If the max cache size is greater than zero, then the cache is flushed whenever it grows to be this size.

Parameters:
maxFilterChainsCacheSize - the maximum number of entries in a filter chain cache.

customizeServlet

public Servlet customizeServlet(Servlet servlet)
                         throws Exception
Customize a servlet. Called before the servlet goes into service. Subclasses of ServletHandler should override this method.

Parameters:
servlet -
Returns:
Throws:
Exception

customizeServletDestroy

public Servlet customizeServletDestroy(Servlet servlet)
                                throws Exception
Throws:
Exception

customizeFilter

public Filter customizeFilter(Filter filter)
                       throws Exception
Customize a Filter. Called before the Filter goes into service. Subclasses of ServletHandler should override this method.

Parameters:
filter -
Returns:
Throws:
Exception

customizeFilterDestroy

public Filter customizeFilterDestroy(Filter filter)
                              throws Exception
Throws:
Exception

dump

protected void dump(StringBuilder b,
                    String indent)
Overrides:
dump in class AbstractHandlerContainer


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