org.mortbay.jetty.servlet
Class ServletHandler

java.lang.Object
  extended byorg.mortbay.component.AbstractLifeCycle
      extended byorg.mortbay.jetty.handler.AbstractHandler
          extended byorg.mortbay.jetty.servlet.ServletHandler
All Implemented Interfaces:
Handler, LifeCycle

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.

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
           
protected  HashMap[] _namedChainCache
           
 
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.
protected  void doStart()
           
protected  void doStop()
           
 Object getContextLog()
           
 FilterMapping[] getFilterMappings()
           
 FilterHolder[] getFilters()
          Get Filters.
 PathMap.Entry getHolderEntry(String pathInContext)
          ServletHolder matching path.
 int getMaxFilterChainsCacheSize()
           
 RequestDispatcher getRequestDispatcher(String uriInContext)
           
 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 isFilterChainsCached()
           
 boolean isInitializeAtStart()
           
protected  FilterHolder newFilterHolder()
          Deprecated. use newFilterHolder(Class)
 FilterHolder newFilterHolder(Class filter)
           
protected  ServletHolder newServletHolder()
          Deprecated. use newServletHolder(Class)
 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)
           
 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()
           
 
Methods inherited from class org.mortbay.jetty.handler.AbstractHandler
getServer, toString
 
Methods inherited from class org.mortbay.component.AbstractLifeCycle
isFailed, isRunning, isStarted, isStarting, 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, 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

_namedChainCache

protected transient HashMap[] _namedChainCache
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

handle

public void handle(String target,
                   HttpServletRequest request,
                   HttpServletResponse response,
                   int type)
            throws IOException
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

isInitializeAtStart

public boolean isInitializeAtStart()
Returns:
Returns the initializeAtStart.

setInitializeAtStart

public void setInitializeAtStart(boolean initializeAtStart)
Parameters:
initializeAtStart - The initializeAtStart to set.

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

protected final ServletHolder newServletHolder()
Deprecated. use 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:
pathSpec -
Returns:
The servlet holder.

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

protected FilterHolder newFilterHolder()
Deprecated. use newFilterHolder(Class)


addFilterWithMapping

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

Parameters:
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:
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:
pathSpec -
dispatches - see FilterMapping.setDispatches(int)
Returns:
The filter holder.

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 -

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.