org.eclipse.jetty.webapp

## Class WebAppContext

- java.lang.Object
- - org.eclipse.jetty.util.component.AbstractLifeCycle
  - - org.eclipse.jetty.util.component.AggregateLifeCycle
    - - org.eclipse.jetty.server.handler.AbstractHandler
      - - org.eclipse.jetty.server.handler.AbstractHandlerContainer
        - - org.eclipse.jetty.server.handler.HandlerWrapper
          - - org.eclipse.jetty.server.handler.ScopedHandler
            - - org.eclipse.jetty.server.handler.ContextHandler
              - - org.eclipse.jetty.servlet.ServletContextHandler
                - - org.eclipse.jetty.webapp.WebAppContext

- All Implemented Interfaces:
    Handler, HandlerContainer, Server.Graceful, Attributes, Destroyable, Dumpable, LifeCycle, WebAppClassLoader.Context

      public class WebAppContext
      extends ServletContextHandler
      implements WebAppClassLoader.Context

  Web Application Context Handler. The WebAppContext handler is an extension of ContextHandler that coordinates the construction and configuration of nested handlers: `ConstraintSecurityHandler`, `SessionHandler` and `ServletHandler`. The handlers are configured by pluggable configuration classes, with the default being `WebXmlConfiguration` and `JettyWebXmlConfiguration`.
  Apache XBean:
    description="Creates a servlet web application at a given context from a resource base"

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `WebAppContext.Context`

    - ### Nested classes/interfaces inherited from class org.eclipse.jetty.servlet.ServletContextHandler

      `ServletContextHandler.Decorator, ServletContextHandler.JspConfig, ServletContextHandler.JspPropertyGroup, ServletContextHandler.TagLib`

    - ### Nested classes/interfaces inherited from class org.eclipse.jetty.server.handler.ContextHandler

      `ContextHandler.AliasCheck, ContextHandler.ApproveNonExistentDirectoryAliases, ContextHandler.ApprovePathPrefixAliases, ContextHandler.ApproveSameSuffixAliases`

    - ### Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

      `AbstractLifeCycle.AbstractLifeCycleListener`

    - ### Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

      `LifeCycle.Listener`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String[]` | `__dftServerClasses`
    `static String[]` | `__dftSystemClasses`
    `static String` | `BASETEMPDIR`
    `static String` | `ERROR_PAGE`
    `static String` | `SERVER_CONFIG`
    `static String` | `SERVER_SRV_CLASSES`
    `static String` | `SERVER_SYS_CLASSES`
    `static String` | `TEMPDIR`
    `static String` | `WEB_DEFAULTS_XML`

    - ### Fields inherited from class org.eclipse.jetty.servlet.ServletContextHandler

      `_decorators, _defaultSecurityHandlerClass, _jspConfig, _options, _restrictedContextListeners, _securityHandler, _servletHandler, _sessionHandler, _wrapper, NO_SECURITY, NO_SESSIONS, SECURITY, SESSIONS`

    - ### Fields inherited from class org.eclipse.jetty.server.handler.ContextHandler

      `_scontext, MANAGED_ATTRIBUTES`

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

    Constructors
    Constructor and Description
    `WebAppContext()`
    `WebAppContext(HandlerContainer parent, String webApp, String contextPath)`
    `WebAppContext(SessionHandler sessionHandler, SecurityHandler securityHandler, ServletHandler servletHandler, ErrorHandler errorHandler)` This constructor is used in the geronimo integration.
    `WebAppContext(String webApp, String contextPath)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEventListener(EventListener listener)` Add EventListener Conveniance method that calls `setEventListeners(EventListener[])`
    `void` | `addOverrideDescriptor(String overrideDescriptor)` The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
    `void` | `addServerClass(String classname)`
    `void` | `addSystemClass(String classname)`
    `void` | `configure()`
    `void` | `destroy()` Destroy the joined Destroyable beans in the reverse order they were added.
    `protected void` | `doStart()` Start the managed lifecycle beans in the order they were added.
    `protected void` | `doStop()` Stop the joined lifecycle beans in the reverse order they were added.
    `String[]` | `getConfigurationClasses()`
    `Configuration[]` | `getConfigurations()`
    `static WebAppContext` | `getCurrentWebAppContext()`
    `String[]` | `getDefaultConfigurationClasses()`
    `String` | `getDefaultsDescriptor()` The default descriptor is a web.xml format file that is applied to the context before the standard WEB-INF/web.xml
    `String[]` | `getDefaultServerClasses()`
    `String[]` | `getDefaultSystemClasses()`
    `String` | `getDescriptor()`
    `String` | `getExtraClasspath()`
    `MetaData` | `getMetaData()`
    `String` | `getOverrideDescriptor()` Deprecated. use `getOverrideDescriptors()`
    `List<String>` | `getOverrideDescriptors()` An override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
    `PermissionCollection` | `getPermissions()`
    `Resource` | `getResource(String uriInContext)`
    `String` | `getResourceAlias(String path)`
    `Map<String,String>` | `getResourceAliases()`
    `String[]` | `getServerClasses()`
    `String[]` | `getSystemClasses()`
    `File` | `getTempDirectory()`
    `Throwable` | `getUnavailableException()` Get an exception that caused the webapp to be unavailable
    `String` | `getWar()`
    `Resource` | `getWebInf()`
    `boolean` | `isAllowDuplicateFragmentNames()`
    `boolean` | `isConfigurationDiscovered()` Is the context Automatically configured.
    `boolean` | `isCopyWebDir()`
    `boolean` | `isCopyWebInf()`
    `boolean` | `isDistributable()`
    `boolean` | `isExtractWAR()`
    `boolean` | `isLogUrlOnStart()`
    `boolean` | `isParentLoaderPriority()`
    `boolean` | `isServerClass(String name)` Is the class a Server Class.
    `boolean` | `isSystemClass(String name)` Is the class a System Class.
    `boolean` | `isThrowUnavailableOnStartupException()`
    `protected void` | `loadConfigurations()`
    `protected void` | `loadSystemClasses()`
    `void` | `postConfigure()`
    `void` | `preConfigure()` Pre configure the web application.
    `String` | `removeResourceAlias(String alias)`
    `void` | `setAllowDuplicateFragmentNames(boolean allowDuplicateFragmentNames)`
    `void` | `setClassLoader(ClassLoader classLoader)`
    `void` | `setConfigurationClasses(String[] configurations)`
    `void` | `setConfigurationDiscovered(boolean discovered)` Set the configuration discovery mode.
    `void` | `setConfigurations(Configuration[] configurations)`
    `void` | `setContextWhiteList(String[] contextWhiteList)` Set the context white list In certain circumstances you want may want to deny access of one webapp from another when you may not fully trust the webapp.
    `void` | `setCopyWebDir(boolean copy)`
    `void` | `setCopyWebInf(boolean copyWebInf)`
    `void` | `setDefaultsDescriptor(String defaultsDescriptor)` The default descriptor is a web.xml format file that is applied to the context before the standard WEB-INF/web.xml
    `void` | `setDescriptor(String descriptor)`
    `void` | `setDisplayName(String servletContextName)`
    `void` | `setDistributable(boolean distributable)`
    `void` | `setEventListeners(EventListener[] eventListeners)` Set the context event listeners.
    `void` | `setExtraClasspath(String extraClasspath)`
    `void` | `setExtractWAR(boolean extractWAR)`
    `void` | `setLogUrlOnStart(boolean logOnStart)` Sets whether or not the web app name and URL is logged on startup
    `void` | `setOverrideDescriptor(String overrideDescriptor)` Deprecated. use `setOverrideDescriptors(List)`
    `void` | `setOverrideDescriptors(List<String> overrideDescriptors)` The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
    `void` | `setParentLoaderPriority(boolean java2compliant)`
    `void` | `setPermissions(PermissionCollection permissions)`
    `void` | `setResourceAlias(String alias, String uri)` Set Resource Alias.
    `void` | `setResourceAliases(Map<String,String> map)`
    `void` | `setServer(Server server)`
    `void` | `setServerClasses(String[] serverClasses)` Set the server classes patterns.
    `Set<String>` | `setServletSecurity(javax.servlet.ServletRegistration.Dynamic registration, javax.servlet.ServletSecurityElement servletSecurityElement)` Delegate for ServletRegistration.Dynamic.setServletSecurity method
    `void` | `setSystemClasses(String[] systemClasses)` Set the system classes patterns.
    `void` | `setTempDirectory(File dir)` Set temporary directory for context.
    `void` | `setThrowUnavailableOnStartupException(boolean throwIfStartupException)`
    `void` | `setWar(String war)`
    `protected void` | `startContext()` Finish constructing handlers and link them together.
    `String` | `toString()`

    - ### Methods inherited from class org.eclipse.jetty.servlet.ServletContextHandler

      `addDecorator, addFilter, addFilter, addFilter, addRoles, addServlet, addServlet, addServlet, callContextDestroyed, callContextInitialized, dynamicHolderAdded, getDecorators, getDefaultSecurityHandlerClass, getSecurityHandler, getServletHandler, getSessionHandler, isRestrictListeners, newSecurityHandler, newServletHandler, newSessionHandler, restrictEventListener, setDecorators, setDefaultSecurityHandlerClass, setRestrictListeners, setSecurityHandler, setServletHandler, setSessionHandler`

    - ### Methods inherited from class org.eclipse.jetty.server.handler.ContextHandler

      `addAliasCheck, addLocaleEncoding, addVirtualHosts, checkContext, checkManagedAttribute, clearAttributes, doHandle, doScope, dump, getAliasChecks, getAllowNullPathInfo, getAttribute, getAttributeNames, getAttributes, getBaseResource, getClassLoader, getClassPath, getConnectorNames, getContextPath, getCurrentContext, getDisplayName, getErrorHandler, getEventListeners, getInitParameter, getInitParameterNames, getInitParams, getLocaleEncoding, getLocaleEncoding, getLogger, getMaxFormContentSize, getMaxFormKeys, getMimeTypes, getProtectedTargets, getResourceBase, getResourcePaths, getServletContext, getVirtualHosts, getWelcomeFiles, handle, isAliases, isAvailable, isCompactPath, isProtectedTarget, isShutdown, loadClass, newResource, newResource, removeAttribute, removeVirtualHosts, setAliases, setAllowNullPathInfo, setAttribute, setAttributes, setAvailable, setBaseResource, setCompactPath, setConnectorNames, setContextPath, setErrorHandler, setInitParameter, setLogger, setManagedAttribute, setMaxFormContentSize, setMaxFormKeys, setMimeTypes, setProtectedTargets, setResourceBase, setShutdown, setVirtualHosts, setWelcomeFiles`

    - ### Methods inherited from class org.eclipse.jetty.server.handler.ScopedHandler

      `handle, never, nextHandle, nextScope`

    - ### Methods inherited from class org.eclipse.jetty.server.handler.HandlerWrapper

      `expandChildren, getHandler, getHandlers, getNestedHandlerByClass, setHandler`

    - ### Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandlerContainer

      `expandHandler, findContainerOf, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass`

    - ### Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandler

      `dumpThis, getServer`

    - ### Methods inherited from class org.eclipse.jetty.util.component.AggregateLifeCycle

      `addBean, addBean, contains, dump, dump, dump, dump, dumpObject, dumpStdErr, getBean, getBeans, getBeans, isManaged, manage, removeBean, removeBeans, unmanage`

    - ### Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

      `addLifeCycleListener, getState, 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.webapp.WebAppClassLoader.Context

      `newResource`

    - ### Methods inherited from interface org.eclipse.jetty.server.Handler

      `getServer, handle`

    - ### Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

      `addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop`

- - ### Field Detail

    - #### TEMPDIR

          public static final String TEMPDIR

      See Also:
        Constant Field Values

    - #### BASETEMPDIR

          public static final String BASETEMPDIR

      See Also:
        Constant Field Values

    - #### WEB_DEFAULTS_XML

          public static final String WEB_DEFAULTS_XML

      See Also:
        Constant Field Values

    - #### ERROR_PAGE

          public static final String ERROR_PAGE

      See Also:
        Constant Field Values

    - #### SERVER_CONFIG

          public static final String SERVER_CONFIG

      See Also:
        Constant Field Values

    - #### SERVER_SYS_CLASSES

          public static final String SERVER_SYS_CLASSES

      See Also:
        Constant Field Values

    - #### SERVER_SRV_CLASSES

          public static final String SERVER_SRV_CLASSES

      See Also:
        Constant Field Values

    - #### __dftSystemClasses

          public static final String[] __dftSystemClasses

    - #### __dftServerClasses

          public static final String[] __dftServerClasses

  - ### Constructor Detail

    - #### WebAppContext

          public WebAppContext()

    - #### WebAppContext

          public WebAppContext(String webApp,
                       String contextPath)

      Parameters:
        `contextPath` - The context path
        `webApp` - The URL or filename of the webapp directory or war file.

    - #### WebAppContext

          public WebAppContext(HandlerContainer parent,
                       String webApp,
                       String contextPath)

      Parameters:
        `parent` - The parent HandlerContainer.
        `contextPath` - The context path
        `webApp` - The URL or filename of the webapp directory or war file.

    - #### WebAppContext

          public WebAppContext(SessionHandler sessionHandler,
                       SecurityHandler securityHandler,
                       ServletHandler servletHandler,
                       ErrorHandler errorHandler)

      This constructor is used in the geronimo integration.
      Parameters:
        `sessionHandler` - SessionHandler for this web app
        `securityHandler` - SecurityHandler for this web app
        `servletHandler` - ServletHandler for this web app
        `errorHandler` - ErrorHandler for this web app

  - ### Method Detail

    - #### getCurrentWebAppContext

          public static WebAppContext getCurrentWebAppContext()

    - #### setDisplayName

          public void setDisplayName(String servletContextName)

      Overrides:
        `setDisplayName` in class `ContextHandler`
      Parameters:
        `servletContextName` - The servletContextName to set.

    - #### getUnavailableException

          public Throwable getUnavailableException()

      Get an exception that caused the webapp to be unavailable
      Returns:
        A throwable if the webapp is unavailable or null

    - #### setResourceAlias

          public void setResourceAlias(String alias,
                              String uri)

      Set Resource Alias. Resource aliases map resource uri's within a context. They may optionally be used by a handler when looking for a resource.
      Parameters:
        `alias` -
        `uri` -

    - #### getResourceAliases

          public Map<String,String> getResourceAliases()

    - #### setResourceAliases

          public void setResourceAliases(Map<String,String> map)

    - #### getResourceAlias

          public String getResourceAlias(String path)

    - #### removeResourceAlias

          public String removeResourceAlias(String alias)

    - #### setClassLoader

          public void setClassLoader(ClassLoader classLoader)

      Overrides:
        `setClassLoader` in class `ContextHandler`
      Parameters:
        `classLoader` - The classLoader to set.

    - #### getResource

          public Resource getResource(String uriInContext)
                               throws MalformedURLException

      Overrides:
        `getResource` in class `ContextHandler`
      Throws:
        `MalformedURLException`

    - #### isConfigurationDiscovered

          public boolean isConfigurationDiscovered()

      Is the context Automatically configured.
      Returns:
        true if configuration discovery.

    - #### setConfigurationDiscovered

          public void setConfigurationDiscovered(boolean discovered)

      Set the configuration discovery mode. If configuration discovery is set to true, then the JSR315 servlet 3.0 discovered configuration features are enabled. These are:
      - Web Fragments
      - META-INF/resource directories
      Parameters:
        `discovered` - true if configuration discovery is enabled for automatic configuration from the context

    - #### preConfigure

          public void preConfigure()
                            throws Exception

      Pre configure the web application.

      The method is normally called from `AbstractLifeCycle.start()`. It performs the discovery of the configurations to be applied to this context, specifically:

      - Instantiate the `Configuration` instances with a call to `loadConfigurations()`.
      - Setup the default System classes by calling `loadSystemClasses()`
      - Setup the default Server classes by calling `loadServerClasses()`
      - Instantiates a classload (if one is not already set)
      - Calls the `Configuration.preConfigure(WebAppContext)` method of all Configuration instances.
      Throws:
        `Exception`

    - #### configure

          public void configure()
                         throws Exception

      Throws:
        `Exception`

    - #### postConfigure

          public void postConfigure()
                             throws Exception

      Throws:
        `Exception`

    - #### doStart

          protected void doStart()
                          throws Exception

      Description copied from class: `AggregateLifeCycle`
      Start the managed lifecycle beans in the order they were added.
      Overrides:
        `doStart` in class `ContextHandler`
      Throws:
        `Exception`
      See Also:
        `HandlerWrapper.doStart()`

    - #### doStop

          protected void doStop()
                         throws Exception

      Description copied from class: `AggregateLifeCycle`
      Stop the joined lifecycle beans in the reverse order they were added.
      Overrides:
        `doStop` in class `ServletContextHandler`
      Throws:
        `Exception`
      See Also:
        `ContextHandler.doStop()`

    - #### destroy

          public void destroy()

      Description copied from class: `AggregateLifeCycle`
      Destroy the joined Destroyable beans in the reverse order they were added.
      Specified by:
        `destroy` in interface `Handler`
      Specified by:
        `destroy` in interface `Destroyable`
      Overrides:
        `destroy` in class `HandlerWrapper`
      See Also:
        `Destroyable.destroy()`

    - #### getConfigurationClasses

          public String[] getConfigurationClasses()

      Returns:
        Returns the configurations.

    - #### getConfigurations

          public Configuration[] getConfigurations()

      Returns:
        Returns the configurations.

    - #### getDefaultsDescriptor

          public String getDefaultsDescriptor()

      The default descriptor is a web.xml format file that is applied to the context before the standard WEB-INF/web.xml
      Returns:
        Returns the defaultsDescriptor.

    - #### getOverrideDescriptor

          @Deprecated
          public String getOverrideDescriptor()

      Deprecated. use `getOverrideDescriptors()`
      The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
      Returns:
        Returns the Override Descriptor.

    - #### getOverrideDescriptors

          public List<String> getOverrideDescriptors()

      An override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
      Returns:
        Returns the Override Descriptor list

    - #### getPermissions

          public PermissionCollection getPermissions()

      Specified by:
        `getPermissions` in interface `WebAppClassLoader.Context`
      Returns:
        Returns the permissions.

    - #### getServerClasses

          public String[] getServerClasses()

      Returns:
        Returns the serverClasses.
      See Also:
        `setServerClasses(String[])`

    - #### addServerClass

          public void addServerClass(String classname)

    - #### getSystemClasses

          public String[] getSystemClasses()

      Returns:
        Returns the systemClasses.
      See Also:
        `setSystemClasses(String[])`

    - #### addSystemClass

          public void addSystemClass(String classname)

    - #### isServerClass

          public boolean isServerClass(String name)

      Description copied from interface: `WebAppClassLoader.Context`
      Is the class a Server Class. A Server class is a class that is part of the implementation of the server and is NIT visible to a webapplication. The web application may provide it's own implementation of the class, to be loaded from WEB-INF/lib or WEB-INF/classes
      Specified by:
        `isServerClass` in interface `WebAppClassLoader.Context`
      Parameters:
        `name` - The fully qualified name of the class.
      Returns:
        True if the class is a server class.

    - #### isSystemClass

          public boolean isSystemClass(String name)

      Description copied from interface: `WebAppClassLoader.Context`
      Is the class a System Class. A System class is a class that is visible to a webapplication, but that cannot be overridden by the contents of WEB-INF/lib or WEB-INF/classes
      Specified by:
        `isSystemClass` in interface `WebAppClassLoader.Context`
      Parameters:
        `name` - The fully qualified name of the class.
      Returns:
        True if the class is a system class.

    - #### loadSystemClasses

          protected void loadSystemClasses()

    - #### getWar

          public String getWar()

      Returns:
        Returns the war as a file or URL string (Resource)

    - #### getWebInf

          public Resource getWebInf()
                             throws IOException

      Throws:
        `IOException`

    - #### isDistributable

          public boolean isDistributable()

      Returns:
        Returns the distributable.

    - #### isExtractWAR

          public boolean isExtractWAR()

      Returns:
        Returns the extractWAR.

    - #### isCopyWebDir

          public boolean isCopyWebDir()

      Returns:
        True if the webdir is copied (to allow hot replacement of jars on windows)

    - #### isCopyWebInf

          public boolean isCopyWebInf()

      Returns:
        True if the web-inf lib and classes directories are copied (to allow hot replacement of jars on windows)

    - #### isParentLoaderPriority

          public boolean isParentLoaderPriority()

      Specified by:
        `isParentLoaderPriority` in interface `WebAppClassLoader.Context`
      Returns:
        True if the classloader should delegate first to the parent classloader (standard java behaviour) or false if the classloader should first try to load from WEB-INF/lib or WEB-INF/classes (servlet spec recommendation).

    - #### getDefaultConfigurationClasses

          public String[] getDefaultConfigurationClasses()

    - #### getDefaultServerClasses

          public String[] getDefaultServerClasses()

    - #### getDefaultSystemClasses

          public String[] getDefaultSystemClasses()

    - #### loadConfigurations

          protected void loadConfigurations()
                                     throws Exception

      Throws:
        `Exception`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `ContextHandler`

    - #### setConfigurationClasses

          public void setConfigurationClasses(String[] configurations)

      Parameters:
        `configurations` - The configuration class names. If setConfigurations is not called these classes are used to create a configurations array.

    - #### setConfigurations

          public void setConfigurations(Configuration[] configurations)

      Parameters:
        `configurations` - The configurations to set.

    - #### setDefaultsDescriptor

          public void setDefaultsDescriptor(String defaultsDescriptor)

      The default descriptor is a web.xml format file that is applied to the context before the standard WEB-INF/web.xml
      Parameters:
        `defaultsDescriptor` - The defaultsDescriptor to set.

    - #### setOverrideDescriptor

          @Deprecated
          public void setOverrideDescriptor(String overrideDescriptor)

      Deprecated. use `setOverrideDescriptors(List)`
      The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
      Parameters:
        `overrideDescriptor` - The overrideDescritpor to set.

    - #### setOverrideDescriptors

          public void setOverrideDescriptors(List<String> overrideDescriptors)

      The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
      Parameters:
        `overrideDescriptors` - The overrideDescriptors (file or URL) to set.

    - #### addOverrideDescriptor

          public void addOverrideDescriptor(String overrideDescriptor)

      The override descriptor is a web.xml format file that is applied to the context after the standard WEB-INF/web.xml
      Parameters:
        `overrideDescriptor` - The overrideDescriptor (file or URL) to add.

    - #### getDescriptor

          public String getDescriptor()

      Returns:
        the web.xml descriptor to use. If set to null, WEB-INF/web.xml is used if it exists.

    - #### setDescriptor

          public void setDescriptor(String descriptor)

      Parameters:
        `descriptor` - the web.xml descriptor to use. If set to null, WEB-INF/web.xml is used if it exists.

    - #### setDistributable

          public void setDistributable(boolean distributable)

      Parameters:
        `distributable` - The distributable to set.

    - #### setEventListeners

          public void setEventListeners(EventListener[] eventListeners)

      Description copied from class: `ContextHandler`
      Set the context event listeners.
      Overrides:
        `setEventListeners` in class `ContextHandler`
      Parameters:
        `eventListeners` - the event listeners
      See Also:
        `ServletContextListener`, `ServletContextAttributeListener`, `ServletRequestListener`, `ServletRequestAttributeListener`

    - #### addEventListener

          public void addEventListener(EventListener listener)

      Add EventListener Conveniance method that calls `setEventListeners(EventListener[])`
      Overrides:
        `addEventListener` in class `ContextHandler`
      Parameters:
        `listener` -
      See Also:
        `ServletContextListener`, `ServletContextAttributeListener`, `ServletRequestListener`, `ServletRequestAttributeListener`

    - #### setExtractWAR

          public void setExtractWAR(boolean extractWAR)

      Parameters:
        `extractWAR` - True if war files are extracted

    - #### setCopyWebDir

          public void setCopyWebDir(boolean copy)

      Parameters:
        `copy` - True if the webdir is copied (to allow hot replacement of jars)

    - #### setCopyWebInf

          public void setCopyWebInf(boolean copyWebInf)

      Parameters:
        `copyWebInf` - True if the web-inf lib and classes directories are copied (to allow hot replacement of jars on windows)

    - #### setParentLoaderPriority

          public void setParentLoaderPriority(boolean java2compliant)

      Parameters:
        `java2compliant` - The java2compliant to set.

    - #### setPermissions

          public void setPermissions(PermissionCollection permissions)

      Parameters:
        `permissions` - The permissions to set.

    - #### setContextWhiteList

          public void setContextWhiteList(String[] contextWhiteList)

      Set the context white list In certain circumstances you want may want to deny access of one webapp from another when you may not fully trust the webapp. Setting this white list will enable a check when a servlet called getContext(String), validating that the uriInPath for the given webapp has been declaratively allows access to the context.
      Parameters:
        `contextWhiteList` -

    - #### setServerClasses

          public void setServerClasses(String[] serverClasses)

      Set the server classes patterns.

      Server classes/packages are classes used to implement the server and are hidden from the context. If the context needs to load these classes, it must have its own copy of them in WEB-INF/lib or WEB-INF/classes. A class pattern is a string of one of the forms:

      org.package.Classname
        Match a specific class
      org.package.
        Match a specific package hierarchy
      -org.package.Classname
        Exclude a specific class
      -org.package.
        Exclude a specific package hierarchy
      Parameters:
        `serverClasses` - The serverClasses to set.

    - #### setSystemClasses

          public void setSystemClasses(String[] systemClasses)

      Set the system classes patterns.

      System classes/packages are classes provided by the JVM and that cannot be replaced by classes of the same name from WEB-INF, regardless of the value of `setParentLoaderPriority(boolean)`. A class pattern is a string of one of the forms:

      org.package.Classname
        Match a specific class
      org.package.
        Match a specific package hierarchy
      -org.package.Classname
        Exclude a specific class
      -org.package.
        Exclude a specific package hierarchy
      Parameters:
        `systemClasses` - The systemClasses to set.

    - #### setTempDirectory

          public void setTempDirectory(File dir)

      Set temporary directory for context. The javax.servlet.context.tempdir attribute is also set.
      Parameters:
        `dir` - Writable temporary directory.

    - #### getTempDirectory

          public File getTempDirectory()

    - #### setWar

          public void setWar(String war)

      Parameters:
        `war` - The war to set as a file name or URL

    - #### getExtraClasspath

          public String getExtraClasspath()

      Specified by:
        `getExtraClasspath` in interface `WebAppClassLoader.Context`
      Returns:
        Comma or semicolon separated path of filenames or URLs pointing to directories or jar files. Directories should end with '/'.

    - #### setExtraClasspath

          public void setExtraClasspath(String extraClasspath)

      Parameters:
        `extraClasspath` - Comma or semicolon separated path of filenames or URLs pointing to directories or jar files. Directories should end with '/'.

    - #### isLogUrlOnStart

          public boolean isLogUrlOnStart()

    - #### setLogUrlOnStart

          public void setLogUrlOnStart(boolean logOnStart)

      Sets whether or not the web app name and URL is logged on startup
      Parameters:
        `logOnStart` - whether or not the log message is created

    - #### setServer

          public void setServer(Server server)

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

    - #### isAllowDuplicateFragmentNames

          public boolean isAllowDuplicateFragmentNames()

    - #### setAllowDuplicateFragmentNames

          public void setAllowDuplicateFragmentNames(boolean allowDuplicateFragmentNames)

    - #### setThrowUnavailableOnStartupException

          public void setThrowUnavailableOnStartupException(boolean throwIfStartupException)

    - #### isThrowUnavailableOnStartupException

          public boolean isThrowUnavailableOnStartupException()

    - #### startContext

          protected void startContext()
                               throws Exception

      Description copied from class: `ServletContextHandler`
      Finish constructing handlers and link them together.
      Overrides:
        `startContext` in class `ServletContextHandler`
      Throws:
        `Exception`
      See Also:
        `ContextHandler.startContext()`

    - #### setServletSecurity

          public Set<String> setServletSecurity(javax.servlet.ServletRegistration.Dynamic registration,
                                       javax.servlet.ServletSecurityElement servletSecurityElement)

      Description copied from class: `ServletContextHandler`
      Delegate for ServletRegistration.Dynamic.setServletSecurity method
      Overrides:
        `setServletSecurity` in class `ServletContextHandler`
      Parameters:
        `registration` - ServletRegistration.Dynamic instance that setServletSecurity was called on
        `servletSecurityElement` - new security info
      Returns:
        the set of exact URL mappings currently associated with the registration that are also present in the web.xml security constraints and thus will be unaffected by this call.

    - #### getMetaData

          public MetaData getMetaData()

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