## org.mortbay.jetty.servlet
Class ServletHandler

    java.lang.Object
      org.mortbay.component.AbstractLifeCycle
          org.mortbay.jetty.handler.AbstractHandler
              org.mortbay.jetty.servlet.ServletHandler

All Implemented Interfaces:
  LifeCycle, Handler

Direct Known Subclasses:
  ServletHandler

    public class ServletHandler

extends AbstractHandler

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 `Context` or derivative, the `initialize()` method must be called manually after start().

Author:
  Greg Wilkins
See Also:
  `WebAppContext`

Field Summary
`static String` `__DEFAULT_SERVLET`
`static String` `__J_S_CONTEXT_TEMPDIR`
`static String` `__J_S_ERROR_EXCEPTION`
`static String` `__J_S_ERROR_EXCEPTION_TYPE`
`static String` `__J_S_ERROR_MESSAGE`
`static String` `__J_S_ERROR_REQUEST_URI`
`static String` `__J_S_ERROR_SERVLET_NAME`
`static String` `__J_S_ERROR_STATUS_CODE`
`protected HashMap[]` `_chainCache`

Fields inherited from class org.mortbay.jetty.handler.AbstractHandler
`_string`

Fields inherited from interface org.mortbay.jetty.Handler
`ALL, DEFAULT, ERROR, FORWARD, INCLUDE, REQUEST`

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 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 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)`
`protected void` `doStart()`
`protected void` `doStop()`
`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` `handle(String target, HttpServletRequest request, HttpServletResponse response, int type)` Handle a request.
`void` `initialize()` Initialize filters and load-on-startup servlets.
`boolean` `isAvailable()`
`boolean` `isFilterChainsCached()`
`boolean` `isInitializeAtStart()` Deprecated.
`FilterHolder` `newFilterHolder()`
`FilterHolder` `newFilterHolder(Class filter)`
`ServletHolder` `newServletHolder()`
`ServletHolder` `newServletHolder(Class servlet)`
`protected void` `notFound(HttpServletRequest request, HttpServletResponse response)`
`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.
`protected void` `updateMappings()`
`protected void` `updateNameMappings()`

Methods inherited from class org.mortbay.jetty.handler.AbstractHandler
`destroy, getServer, toString`

Methods inherited from class org.mortbay.component.AbstractLifeCycle
`isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.mortbay.component.LifeCycle
`isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop`

Field Detail

### __DEFAULT_SERVLET

    public static final String __DEFAULT_SERVLET

See Also:
  Constant Field Values

### __J_S_CONTEXT_TEMPDIR

    public static final String __J_S_CONTEXT_TEMPDIR

See Also:
  Constant Field Values

### __J_S_ERROR_EXCEPTION

    public static final String __J_S_ERROR_EXCEPTION

See Also:
  Constant Field Values

### __J_S_ERROR_EXCEPTION_TYPE

    public static final String __J_S_ERROR_EXCEPTION_TYPE

See Also:
  Constant Field Values

### __J_S_ERROR_MESSAGE

    public static final String __J_S_ERROR_MESSAGE

See Also:
  Constant Field Values

### __J_S_ERROR_REQUEST_URI

    public static final String __J_S_ERROR_REQUEST_URI

See Also:
  Constant Field Values

### __J_S_ERROR_SERVLET_NAME

    public static final String __J_S_ERROR_SERVLET_NAME

See Also:
  Constant Field Values

### __J_S_ERROR_STATUS_CODE

    public static final String __J_S_ERROR_STATUS_CODE

See Also:
  Constant Field Values

### _chainCache

    protected transient HashMap[] _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 `AbstractHandler`

### doStart

    protected void doStart()
                    throws Exception

  Overrides:
    `doStart` in class `AbstractHandler`
  Throws:
    `Exception`

### doStop

    protected void doStop()
                   throws Exception

  Overrides:
    `doStop` in class `AbstractHandler`
  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

### getRequestDispatcher

    public RequestDispatcher getRequestDispatcher(String uriInContext)

  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)

### handle

    public void handle(String target,
                       HttpServletRequest request,
                       HttpServletResponse response,
                       int type)
                throws IOException,
                       ServletException

  Description copied from interface: `Handler`
  Handle a request.

  Parameters:
    `target` - The target of the request - either a URI or a name.
    `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.
    `type` - The dispatch mode: `Handler.REQUEST`, `Handler.FORWARD`, `Handler.INCLUDE`, `Handler.ERROR`
  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

### 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 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:
    `name` -
    `className` -
    `pathSpec` -

### 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 filter)

### newFilterHolder

    public FilterHolder newFilterHolder()

  See Also:
    `#newFilterHolder(Class)}`

### getFilter

    public FilterHolder getFilter(String name)

### addFilterWithMapping

    public FilterHolder addFilterWithMapping(Class filter,
                                             String pathSpec,
                                             int dispatches)

  conveniance method to add a filter.

  Parameters:
    `name` -
    `className` -
    `pathSpec` -
    `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:
    `name` -
    `className` -
    `pathSpec` -
    `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:
    `name` -
    `className` -
    `pathSpec` -
    `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` -

### 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`

Copyright © 2007 Mort Bay Consulting. All Rights Reserved.