## org.mortbay.jetty.handler
Class ContextHandler

    java.lang.Object
      org.mortbay.component.AbstractLifeCycle
          org.mortbay.jetty.handler.AbstractHandler
              org.mortbay.jetty.handler.AbstractHandlerContainer
                  org.mortbay.jetty.handler.HandlerWrapper
                      org.mortbay.jetty.handler.ContextHandler

All Implemented Interfaces:
  LifeCycle, Handler, HandlerContainer, Server.Graceful, Attributes

Direct Known Subclasses:
  Context, MovedContextHandler

    public class ContextHandler

extends HandlerWrapper
implements Attributes, Server.Graceful

ContextHandler. This handler wraps a call to handle by setting the context and servlet path, plus setting the context classloader.

If the context init parameter "org.mortbay.jetty.servlet.ManagedAttributes" is set to a coma separated list of names, then they are treated as context attribute names, which if set as attributes are passed to the servers Container so that they may be managed with JMX.

Author:
  gregw

Nested Class Summary
`class` `ContextHandler.SContext` Context.

Nested classes/interfaces inherited from interface org.mortbay.component.LifeCycle
`LifeCycle.Listener`

Field Summary
`protected ContextHandler.SContext` `_scontext`
`static java.lang.String` `MANAGED_ATTRIBUTES`

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

Fields inherited from class org.mortbay.component.AbstractLifeCycle
`_listeners`

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

Constructor Summary
`` `ContextHandler()`
`protected` `ContextHandler(ContextHandler.SContext context)`
`` `ContextHandler(HandlerContainer parent, java.lang.String contextPath)`
`` `ContextHandler(java.lang.String contextPath)`

Method Summary
`void` `addEventListener(java.util.EventListener listener)`
`void` `addLocaleEncoding(java.lang.String locale, java.lang.String encoding)`
`void` `clearAttributes()`
`protected void` `doStart()`
`protected void` `doStop()`
`boolean` `getAllowNullPathInfo()`
`java.lang.Object` `getAttribute(java.lang.String name)`
`java.util.Enumeration` `getAttributeNames()`
`Attributes` `getAttributes()`
`Resource` `getBaseResource()`
`java.lang.ClassLoader` `getClassLoader()`
`java.lang.String` `getClassPath()` Make best effort to extract a file classpath from the context classloader
`java.lang.String[]` `getConnectorNames()`
`java.lang.String` `getContextPath()`
`static ContextHandler.SContext` `getCurrentContext()` Get the current ServletContext implementation.
`java.lang.String` `getDisplayName()`
`ErrorHandler` `getErrorHandler()`
`java.util.EventListener[]` `getEventListeners()`
`java.lang.String[]` `getHosts()` Deprecated.
`java.lang.String` `getInitParameter(java.lang.String name)`
`java.util.Enumeration` `getInitParameterNames()`
`java.util.Map` `getInitParams()`
`java.lang.String` `getLocaleEncoding(java.util.Locale locale)` Get the character encoding for a locale.
`int` `getMaxFormContentSize()`
`MimeTypes` `getMimeTypes()`
`Resource` `getResource(java.lang.String path)`
`java.lang.String` `getResourceBase()`
`java.util.Set` `getResourcePaths(java.lang.String path)`
`ContextHandler.SContext` `getServletContext()`
`java.lang.String[]` `getVirtualHosts()` Get the virtual hosts for the context.
`java.lang.String[]` `getWelcomeFiles()`
`void` `handle(java.lang.String target, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, int dispatch)` Handle a request.
`boolean` `isCompactPath()`
`protected boolean` `isProtectedTarget(java.lang.String target)` Check the target.
`boolean` `isShutdown()`
`java.lang.Class` `loadClass(java.lang.String className)`
`void` `removeAttribute(java.lang.String name)`
`void` `setAllowNullPathInfo(boolean allowNullPathInfo)`
`void` `setAttribute(java.lang.String name, java.lang.Object value)`
`void` `setAttributes(Attributes attributes)`
`void` `setBaseResource(Resource base)`
`void` `setClassLoader(java.lang.ClassLoader classLoader)`
`void` `setCompactPath(boolean compactPath)`
`void` `setConnectorNames(java.lang.String[] connectors)` Set the names of accepted connectors.
`void` `setContextPath(java.lang.String contextPath)`
`void` `setDisplayName(java.lang.String servletContextName)`
`void` `setErrorHandler(ErrorHandler errorHandler)`
`void` `setEventListeners(java.util.EventListener[] eventListeners)`
`void` `setHosts(java.lang.String[] hosts)` Deprecated. use `setConnectorNames(String[])`
`void` `setInitParams(java.util.Map initParams)`
`void` `setMaxFormContentSize(int maxSize)`
`void` `setMimeTypes(MimeTypes mimeTypes)`
`void` `setResourceBase(java.lang.String resourceBase)`
`void` `setServer(Server server)`
`void` `setShutdown(boolean shutdown)` Set shutdown status.
`void` `setVirtualHosts(java.lang.String[] vhosts)` Set the virtual hosts for the context.
`void` `setWelcomeFiles(java.lang.String[] files)`
`protected void` `startContext()`
`java.lang.String` `toString()`

Methods inherited from class org.mortbay.jetty.handler.HandlerWrapper
`addHandler, expandChildren, getHandler, removeHandler, setHandler`

Methods inherited from class org.mortbay.jetty.handler.AbstractHandlerContainer
`expandHandler, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass`

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

Methods inherited from class org.mortbay.component.AbstractLifeCycle
`addLifeCycleListener, 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.mortbay.component.LifeCycle
`addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop`

Field Detail

### MANAGED_ATTRIBUTES

    public static final java.lang.String MANAGED_ATTRIBUTES

See Also:
  Constant Field Values

### _scontext

    protected ContextHandler.SContext _scontext

Constructor Detail

### ContextHandler

    public ContextHandler()

### ContextHandler

    protected ContextHandler(ContextHandler.SContext context)

### ContextHandler

    public ContextHandler(java.lang.String contextPath)

### ContextHandler

    public ContextHandler(HandlerContainer parent,
                          java.lang.String contextPath)

Method Detail

### getCurrentContext

    public static ContextHandler.SContext getCurrentContext()

  Get the current ServletContext implementation. This call is only valid during a call to doStart and is available to nested handlers to access the context.

  Returns:
    ServletContext implementation

### getServletContext

    public ContextHandler.SContext getServletContext()

### getAllowNullPathInfo

    public boolean getAllowNullPathInfo()

  Returns:
    the allowNullPathInfo true if /context is not redirected to /context/

### setAllowNullPathInfo

    public void setAllowNullPathInfo(boolean allowNullPathInfo)

  Parameters:
    `allowNullPathInfo` - true if /context is not redirected to /context/

### setServer

    public void setServer(Server server)

  Specified by:
    `setServer` in interface `Handler`
  Overrides:
    `setServer` in class `HandlerWrapper`

### setVirtualHosts

    public void setVirtualHosts(java.lang.String[] vhosts)

  Set the virtual hosts for the context. Only requests that have a matching host header or fully qualified URL will be passed to that context with a virtual host name. A context with no virtual host names or a null virtual host name is available to all requests that are not served by a context with a matching virtual host name.

  Parameters:
    `vhosts` - Array of virtual hosts that this context responds to. A null host name or null/empty array means any hostname is acceptable. Host names may be String representation of IP addresses. Host names may start with '*.' to wildcard one level of names.

### getVirtualHosts

    public java.lang.String[] getVirtualHosts()

  Get the virtual hosts for the context. Only requests that have a matching host header or fully qualified URL will be passed to that context with a virtual host name. A context with no virtual host names or a null virtual host name is available to all requests that are not served by a context with a matching virtual host name.

  Returns:
    Array of virtual hosts that this context responds to. A null host name or empty array means any hostname is acceptable. Host names may be String representation of IP addresses. Host names may start with '*.' to wildcard one level of names.

### setHosts

    public void setHosts(java.lang.String[] hosts)

  Deprecated. use `setConnectorNames(String[])`

### getHosts

    public java.lang.String[] getHosts()

  Deprecated.

  Get the hosts for the context.

### getConnectorNames

    public java.lang.String[] getConnectorNames()

  Returns:
    an array of connector names that this context will accept a request from.

### setConnectorNames

    public void setConnectorNames(java.lang.String[] connectors)

  Set the names of accepted connectors. Names are either "host:port" or a specific configured name for a connector.

  Parameters:
    `connectors` - If non null, an array of connector names that this context will accept a request from.

### getAttribute

    public java.lang.Object getAttribute(java.lang.String name)

  Specified by:
    `getAttribute` in interface `Attributes`

### getAttributeNames

    public java.util.Enumeration getAttributeNames()

  Specified by:
    `getAttributeNames` in interface `Attributes`

### getAttributes

    public Attributes getAttributes()

  Returns:
    Returns the attributes.

### getClassLoader

    public java.lang.ClassLoader getClassLoader()

  Returns:
    Returns the classLoader.

### getClassPath

    public java.lang.String getClassPath()

  Make best effort to extract a file classpath from the context classloader

  Returns:
    Returns the classLoader.

### getContextPath

    public java.lang.String getContextPath()

  Returns:
    Returns the _contextPath.

### getInitParameter

    public java.lang.String getInitParameter(java.lang.String name)

### getInitParameterNames

    public java.util.Enumeration getInitParameterNames()

### getInitParams

    public java.util.Map getInitParams()

  Returns:
    Returns the initParams.

### getDisplayName

    public java.lang.String getDisplayName()

### getEventListeners

    public java.util.EventListener[] getEventListeners()

### setEventListeners

    public void setEventListeners(java.util.EventListener[] eventListeners)

### addEventListener

    public void addEventListener(java.util.EventListener listener)

### isShutdown

    public boolean isShutdown()

  Returns:
    true if this context is accepting new requests

### setShutdown

    public void setShutdown(boolean shutdown)

  Set shutdown status. This field allows for graceful shutdown of a context. A started context may be put into non accepting state so that existing requests can complete, but no new requests are accepted.

  Specified by:
    `setShutdown` in interface `Server.Graceful`
  Parameters:
    `accepting` - true if this context is accepting new requests

### doStart

    protected void doStart()
                    throws java.lang.Exception

  Overrides:
    `doStart` in class `HandlerWrapper`
  Throws:
    `java.lang.Exception`

### startContext

    protected void startContext()
                         throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### doStop

    protected void doStop()
                   throws java.lang.Exception

  Overrides:
    `doStop` in class `HandlerWrapper`
  Throws:
    `java.lang.Exception`

### handle

    public void handle(java.lang.String target,
                       javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response,
                       int dispatch)
                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.
    `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.
    `dispatch` - The dispatch mode: `Handler.REQUEST`, `Handler.FORWARD`, `Handler.INCLUDE`, `Handler.ERROR`
  Throws:
    `java.io.IOException`
    `javax.servlet.ServletException`

### isProtectedTarget

    protected boolean isProtectedTarget(java.lang.String target)

  Check the target. Called by `handle(String, HttpServletRequest, HttpServletResponse, int)` when a target within a context is determined. If the target is protected, 404 is returned. The default implementation always returns false.

  See Also:
    `WebAppContext.isProtectedTarget(String)`

### removeAttribute

    public void removeAttribute(java.lang.String name)

  Specified by:
    `removeAttribute` in interface `Attributes`

### setAttribute

    public void setAttribute(java.lang.String name,
                             java.lang.Object value)

  Specified by:
    `setAttribute` in interface `Attributes`

### setAttributes

    public void setAttributes(Attributes attributes)

  Parameters:
    `attributes` - The attributes to set.

### clearAttributes

    public void clearAttributes()

  Specified by:
    `clearAttributes` in interface `Attributes`

### setClassLoader

    public void setClassLoader(java.lang.ClassLoader classLoader)

  Parameters:
    `classLoader` - The classLoader to set.

### setContextPath

    public void setContextPath(java.lang.String contextPath)

  Parameters:
    `contextPath` - The _contextPath to set.

### setInitParams

    public void setInitParams(java.util.Map initParams)

  Parameters:
    `initParams` - The initParams to set.

### setDisplayName

    public void setDisplayName(java.lang.String servletContextName)

  Parameters:
    `servletContextName` - The servletContextName to set.

### getBaseResource

    public Resource getBaseResource()

  Returns:
    Returns the resourceBase.

### getResourceBase

    public java.lang.String getResourceBase()

  Returns:
    Returns the base resource as a string.

### setBaseResource

    public void setBaseResource(Resource base)

  Parameters:
    `base` - The resourceBase to set.

### setResourceBase

    public void setResourceBase(java.lang.String resourceBase)

  Parameters:
    `resourceBase` - The base resource as a string.

### getMimeTypes

    public MimeTypes getMimeTypes()

  Returns:
    Returns the mimeTypes.

### setMimeTypes

    public void setMimeTypes(MimeTypes mimeTypes)

  Parameters:
    `mimeTypes` - The mimeTypes to set.

### setWelcomeFiles

    public void setWelcomeFiles(java.lang.String[] files)

### getWelcomeFiles

    public java.lang.String[] getWelcomeFiles()

  Returns:
    The names of the files which the server should consider to be welcome files in this context.
  See Also:
    The Servlet Specification, `setWelcomeFiles(java.lang.String[])`

### getErrorHandler

    public ErrorHandler getErrorHandler()

  Returns:
    Returns the errorHandler.

### setErrorHandler

    public void setErrorHandler(ErrorHandler errorHandler)

  Parameters:
    `errorHandler` - The errorHandler to set.

### getMaxFormContentSize

    public int getMaxFormContentSize()

### setMaxFormContentSize

    public void setMaxFormContentSize(int maxSize)

### isCompactPath

    public boolean isCompactPath()

  Returns:
    True if URLs are compacted to replace multiple '/'s with a single '/'

### setCompactPath

    public void setCompactPath(boolean compactPath)

  Parameters:
    `compactPath` - True if URLs are compacted to replace multiple '/'s with a single '/'

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `AbstractHandler`

### loadClass

    public java.lang.Class loadClass(java.lang.String className)
                              throws java.lang.ClassNotFoundException

  Throws:
    `java.lang.ClassNotFoundException`

### addLocaleEncoding

    public void addLocaleEncoding(java.lang.String locale,
                                  java.lang.String encoding)

### getLocaleEncoding

    public java.lang.String getLocaleEncoding(java.util.Locale locale)

  Get the character encoding for a locale. The full locale name is first looked up in the map of encodings. If no encoding is found, then the locale language is looked up.

  Parameters:
    `locale` - a `Locale` value
  Returns:
    a `String` representing the character encoding for the locale or null if none found.

### getResource

    public Resource getResource(java.lang.String path)
                         throws java.net.MalformedURLException

  Throws:
    `java.net.MalformedURLException`

### getResourcePaths

    public java.util.Set getResourcePaths(java.lang.String path)

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