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
`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
`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
`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()