FailedContext (Apache Tomcat 9.0.73 API Documentation)

Package org.apache.catalina.startup

## Class FailedContext

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.startup.FailedContext

- All Implemented Interfaces:
    `javax.management.MBeanRegistration`, `Container`, `Context`, `JmxEnabled`, `Lifecycle`, `ContextBind`

      public class FailedContext
      extends LifecycleMBeanBase
      implements Context

  An implementation of `Context` that is used as a place-holder for deployed applications when their deployment fails and a Context instance (usually `StandardContext` but may be any Context implementation) cannot be created.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static StringManager` | `sm` |

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### Fields inherited from interface org.apache.catalina.Container

      `ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT`

    - ### Fields inherited from interface org.apache.catalina.Context

      `ADD_WELCOME_FILE_EVENT, CHANGE_SESSION_ID_EVENT, CLEAR_WELCOME_FILES_EVENT, REMOVE_WELCOME_FILE_EVENT`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FailedContext()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addApplicationListener​(java.lang.String listener)` | Add a new Listener class name to the set of Listeners configured for this application.
    `void` | `addApplicationParameter​(ApplicationParameter parameter)` | Add a new application parameter for this application.
    `void` | `addChild​(Container child)` | Add a new child Container to those associated with this Container, if supported.
    `void` | `addConstraint​(SecurityConstraint constraint)` | Add a security constraint to the set for this web application.
    `void` | `addContainerListener​(ContainerListener listener)` | Add a container event listener to this component.
    `void` | `addErrorPage​(ErrorPage errorPage)` | Add an error page for the specified error or Java exception.
    `void` | `addFilterDef​(FilterDef filterDef)` | Add a filter definition to this Context.
    `void` | `addFilterMap​(FilterMap filterMap)` | Add a filter mapping to this Context.
    `void` | `addFilterMapBefore​(FilterMap filterMap)` | Add a filter mapping to this Context before the mappings defined in the deployment descriptor but after any other mappings added via this method.
    `void` | `addLocaleEncodingMappingParameter​(java.lang.String locale, java.lang.String encoding)` | Add a Locale Encoding Mapping (see Sec 5.4 of Servlet spec 2.4)
    `void` | `addMimeMapping​(java.lang.String extension, java.lang.String mimeType)` | Add a new MIME mapping, replacing any existing mapping for the specified extension.
    `void` | `addParameter​(java.lang.String name, java.lang.String value)` | Add a new context initialization parameter, replacing any existing value for the specified name.
    `void` | `addPostConstructMethod​(java.lang.String clazz, java.lang.String method)` | Add a post construct method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
    `void` | `addPreDestroyMethod​(java.lang.String clazz, java.lang.String method)` | Add a pre destroy method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
    `void` | `addPropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Add a property change listener to this component.
    `void` | `addRoleMapping​(java.lang.String role, java.lang.String link)` | Add a security role reference for this web application.
    `void` | `addSecurityRole​(java.lang.String role)` | Add a new security role for this web application.
    `void` | `addServletContainerInitializer​(ServletContainerInitializer sci, java.util.Set<java.lang.Class<?>> classes)` | Add a ServletContainerInitializer instance to this web application.
    `void` | `addServletMappingDecoded​(java.lang.String pattern, java.lang.String name, boolean jspWildcard)` | Add a new servlet mapping, replacing any existing mapping for the specified pattern.
    `java.util.Set<java.lang.String>` | `addServletSecurity​(ServletRegistration.Dynamic registration, ServletSecurityElement servletSecurityElement)` | Notification that Servlet security has been dynamically set in a `ServletRegistration.Dynamic`
    `void` | `addValve​(Valve valve)` |
    `void` | `addWatchedResource​(java.lang.String name)` | Add a resource which will be watched for reloading by the host auto deployer.
    `void` | `addWelcomeFile​(java.lang.String name)` | Add a new welcome file to the set recognized by this Context.
    `void` | `addWrapperLifecycle​(java.lang.String listener)` | Add the classname of a LifecycleListener to be added to each Wrapper appended to this Context.
    `void` | `addWrapperListener​(java.lang.String listener)` | Add the classname of a ContainerListener to be added to each Wrapper appended to this Context.
    `void` | `backgroundProcess()` | Execute a periodic task, such as reloading, etc.
    `java.lang.ClassLoader` | `bind​(boolean usePrivilegedAction, java.lang.ClassLoader originalClassLoader)` | Change the current thread context class loader to the web application class loader.
    `InstanceManager` | `createInstanceManager()` | Factory method to create and return a new InstanceManager instance.
    `Wrapper` | `createWrapper()` | Factory method to create and return a new Wrapper instance, of the Java implementation class appropriate for this Context implementation.
    `void` | `decrementInProgressAsyncCount()` |
    `java.lang.String[]` | `findApplicationListeners()` |
    `ApplicationParameter[]` | `findApplicationParameters()` |
    `Container` | `findChild​(java.lang.String name)` | Obtain a child Container by name.
    `Container[]` | `findChildren()` | Obtain the child Containers associated with this Container.
    `SecurityConstraint[]` | `findConstraints()` |
    `ContainerListener[]` | `findContainerListeners()` | Obtain the container listeners associated with this Container.
    `ErrorPage` | `findErrorPage​(int errorCode)` |
    `ErrorPage` | `findErrorPage​(java.lang.String exceptionType)` |
    `ErrorPage` | `findErrorPage​(java.lang.Throwable throwable)` | Find and return the ErrorPage instance for the specified exception's class, or an ErrorPage instance for the closest superclass for which there is such a definition.
    `ErrorPage[]` | `findErrorPages()` |
    `FilterDef` | `findFilterDef​(java.lang.String filterName)` |
    `FilterDef[]` | `findFilterDefs()` |
    `FilterMap[]` | `findFilterMaps()` |
    `java.lang.String` | `findMimeMapping​(java.lang.String extension)` |
    `java.lang.String[]` | `findMimeMappings()` |
    `java.lang.String` | `findParameter​(java.lang.String name)` |
    `java.lang.String[]` | `findParameters()` |
    `java.lang.String` | `findPostConstructMethod​(java.lang.String clazz)` | Returns the method name that is specified as post construct method for the given class, if it exists; otherwise `NULL` will be returned.
    `java.util.Map<java.lang.String,​java.lang.String>` | `findPostConstructMethods()` | Returns a map with keys - fully qualified class names of the classes that have post construct methods and the values are the corresponding method names.
    `java.lang.String` | `findPreDestroyMethod​(java.lang.String clazz)` | Returns the method name that is specified as pre destroy method for the given class, if it exists; otherwise `NULL` will be returned.
    `java.util.Map<java.lang.String,​java.lang.String>` | `findPreDestroyMethods()` | Returns a map with keys - fully qualified class names of the classes that have pre destroy methods and the values are the corresponding method names.
    `java.lang.String` | `findRoleMapping​(java.lang.String role)` | For the given security role (as used by an application), return the corresponding role name (as defined by the underlying Realm) if there is one.
    `boolean` | `findSecurityRole​(java.lang.String role)` |
    `java.lang.String[]` | `findSecurityRoles()` |
    `java.lang.String` | `findServletMapping​(java.lang.String pattern)` |
    `java.lang.String[]` | `findServletMappings()` |
    `java.lang.String` | `findStatusPage​(int status)` |
    `int[]` | `findStatusPages()` |
    `java.lang.String[]` | `findWatchedResources()` |
    `boolean` | `findWelcomeFile​(java.lang.String name)` |
    `java.lang.String[]` | `findWelcomeFiles()` |
    `java.lang.String[]` | `findWrapperLifecycles()` |
    `java.lang.String[]` | `findWrapperListeners()` |
    `void` | `fireContainerEvent​(java.lang.String type, java.lang.Object data)` | Notify all container event listeners that a particular event has occurred for this Container.
    `boolean` | `fireRequestDestroyEvent​(ServletRequest request)` | Notify all `ServletRequestListener`s that a request has ended.
    `boolean` | `fireRequestInitEvent​(ServletRequest request)` | Notify all `ServletRequestListener`s that a request has started.
    `AccessLog` | `getAccessLog()` | Obtain the AccessLog to use to log a request/response that is destined for this container.
    `boolean` | `getAddWebinfClassesResources()` |
    `boolean` | `getAllowCasualMultipartParsing()` | Returns `true` if requests mapped to servlets without "multipart config" to parse multipart/form-data requests anyway.
    `boolean` | `getAllowMultipleLeadingForwardSlashInPath()` | When returning a context path from `HttpServletRequest.getContextPath()`, is it allowed to contain multiple leading '/' characters?
    `java.lang.String` | `getAltDDName()` | Return the alternate Deployment Descriptor name.
    `java.lang.Object[]` | `getApplicationEventListeners()` | Obtain the registered application event listeners.
    `java.lang.Object[]` | `getApplicationLifecycleListeners()` | Obtain the registered application lifecycle listeners.
    `Authenticator` | `getAuthenticator()` |
    `int` | `getBackgroundProcessorDelay()` | Get the delay between the invocation of the backgroundProcess method on this container and its children.
    `java.lang.String` | `getBaseName()` |
    `java.io.File` | `getCatalinaBase()` | Obtain the location of CATALINA_BASE.
    `java.io.File` | `getCatalinaHome()` | Obtain the location of CATALINA_HOME.
    `java.lang.String` | `getCharset​(java.util.Locale locale)` | Obtain the character set name to use with the given Locale.
    `Cluster` | `getCluster()` | Get the Cluster for this container.
    `java.net.URL` | `getConfigFile()` | Return the URL of the XML descriptor for this context.
    `boolean` | `getConfigured()` | Return the "correctly configured" flag for this Context.
    `java.lang.String` | `getContainerSciFilter()` | Obtains the regular expression that specifies which container provided SCIs should be filtered out and not used for this context.
    `CookieProcessor` | `getCookieProcessor()` |
    `boolean` | `getCookies()` | Return the "use cookies for session ids" flag.
    `boolean` | `getCreateUploadTargets()` | Will Tomcat attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it?
    `boolean` | `getCrossContext()` | Return the "allow crossing servlet contexts" flag.
    `boolean` | `getDenyUncoveredHttpMethods()` | Return the deny-uncovered-http-methods flag for this web application.
    `boolean` | `getDispatchersUseEncodedPaths()` | Are paths used in calls to obtain a request dispatcher expected to be encoded?
    `java.lang.String` | `getDisplayName()` | Return the display name of this web application.
    `boolean` | `getDistributable()` | Get the distributable flag for this web application.
    `java.lang.String` | `getDocBase()` | Obtain the document root for this Context.
    `protected java.lang.String` | `getDomainInternal()` | Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `int` | `getEffectiveMajorVersion()` |
    `int` | `getEffectiveMinorVersion()` |
    `java.lang.String` | `getEncodedPath()` | Return the URL encoded context path
    `boolean` | `getFireRequestListenersOnForwards()` |
    `boolean` | `getIgnoreAnnotations()` | Determine if annotations parsing is currently disabled
    `InstanceManager` | `getInstanceManager()` |
    `JarScanner` | `getJarScanner()` | Get the Jar Scanner to be used to scan for JAR resources for this context.
    `JspConfigDescriptor` | `getJspConfigDescriptor()` |
    `Loader` | `getLoader()` |
    `boolean` | `getLogEffectiveWebXml()` | Should the effective web.xml for this context be logged on context start?
    `Log` | `getLogger()` | Obtain the log to which events for this container should be logged.
    `LoginConfig` | `getLoginConfig()` |
    `java.lang.String` | `getLogName()` | Return the logger name that the container will use.
    `Manager` | `getManager()` |
    `boolean` | `getMapperContextRootRedirectEnabled()` | Determines if requests for a web application context root will be redirected (adding a trailing slash) by the Mapper.
    `boolean` | `getMapperDirectoryRedirectEnabled()` | Determines if requests for a directory will be redirected (adding a trailing slash) by the Mapper.
    `java.lang.String` | `getMBeanKeyProperties()` | Calculate the key properties string to be added to an object's `ObjectName` to indicate that it is associated with this container.
    `java.lang.String` | `getName()` | Return a name string (suitable for use by humans) that describes this Container.
    `NamingResourcesImpl` | `getNamingResources()` |
    `java.lang.Object` | `getNamingToken()` |
    `protected java.lang.String` | `getObjectNameKeyProperties()` | Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `boolean` | `getOverride()` |
    `boolean` | `getParallelAnnotationScanning()` |
    `Container` | `getParent()` | Get the parent container.
    `java.lang.ClassLoader` | `getParentClassLoader()` | Get the parent class loader.
    `java.lang.String` | `getPath()` |
    `boolean` | `getPaused()` | Is this Context paused whilst it is reloaded?
    `Pipeline` | `getPipeline()` | Return the Pipeline object that manages the Valves associated with this Container.
    `boolean` | `getPreemptiveAuthentication()` |
    `boolean` | `getPrivileged()` |
    `java.lang.String` | `getPublicId()` |
    `Realm` | `getRealm()` | Obtain the Realm with which this Container is associated.
    `java.lang.String` | `getRealPath​(java.lang.String path)` |
    `boolean` | `getReloadable()` |
    `java.lang.String` | `getRequestCharacterEncoding()` | Get the default request body encoding for this web application.
    `java.lang.String` | `getResourceOnlyServlets()` | Obtains the list of Servlets that expect a resource to be present.
    `WebResourceRoot` | `getResources()` |
    `java.lang.String` | `getResponseCharacterEncoding()` | Get the default response body encoding for this web application.
    `boolean` | `getSendRedirectBody()` |
    `ServletContext` | `getServletContext()` |
    `java.lang.String` | `getSessionCookieDomain()` | Gets the domain to use for session cookies.
    `java.lang.String` | `getSessionCookieName()` | Gets the name to use for session cookies.
    `java.lang.String` | `getSessionCookiePath()` | Gets the path to use for session cookies.
    `boolean` | `getSessionCookiePathUsesTrailingSlash()` | Is a / added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
    `int` | `getSessionTimeout()` |
    `int` | `getStartStopThreads()` | Obtain the number of threads available for starting and stopping any children associated with this container.
    `boolean` | `getSwallowAbortedUploads()` | Returns `true` if remaining request data will be read (swallowed) even the request violates a data size constraint.
    `boolean` | `getSwallowOutput()` |
    `ThreadBindingListener` | `getThreadBindingListener()` |
    `boolean` | `getTldValidation()` | Will the parsing of *.tld files for this Context be performed by a validating parser?
    `boolean` | `getUseBloomFilterForArchives()` |
    `boolean` | `getUseHttpOnly()` | Gets the value of the use HttpOnly cookies for session cookies flag.
    `boolean` | `getUseRelativeRedirects()` | Will HTTP 1.1 and later location headers generated by a call to `HttpServletResponse.sendRedirect(String)` use relative or absolute redirects.
    `boolean` | `getValidateClientProvidedNewSessionId()` | Will client provided session IDs be validated (see `Context.setValidateClientProvidedNewSessionId(boolean)`) before use?
    `java.lang.String` | `getWebappVersion()` |
    `java.lang.String` | `getWrapperClass()` |
    `boolean` | `getXmlBlockExternal()` | Will the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context block the use of external entities?
    `boolean` | `getXmlNamespaceAware()` | Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a namespace aware parser?
    `boolean` | `getXmlValidation()` | Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a validating parser?
    `void` | `incrementInProgressAsyncCount()` |
    `boolean` | `isResourceOnlyServlet​(java.lang.String servletName)` | Checks the named Servlet to see if it expects a resource to be present.
    `boolean` | `isServlet22()` | Is this context using version 2.2 of the Servlet spec?
    `void` | `logAccess​(Request request, Response response, long time, boolean useDefault)` | Log a request/response that was destined for this container but has been handled earlier in the processing chain so that the request/response still appears in the correct access logs.
    `void` | `reload()` | Reload this web application, if reloading is supported.
    `void` | `removeApplicationListener​(java.lang.String listener)` | Remove the specified application listener class from the set of listeners for this application.
    `void` | `removeApplicationParameter​(java.lang.String name)` | Remove the application parameter with the specified name from the set for this application.
    `void` | `removeChild​(Container child)` | Remove an existing child Container from association with this parent Container.
    `void` | `removeConstraint​(SecurityConstraint constraint)` | Remove the specified security constraint from this web application.
    `void` | `removeContainerListener​(ContainerListener listener)` | Remove a container event listener from this component.
    `void` | `removeErrorPage​(ErrorPage errorPage)` | Remove the error page for the specified error code or Java language exception, if it exists; otherwise, no action is taken.
    `void` | `removeFilterDef​(FilterDef filterDef)` | Remove the specified filter definition from this Context, if it exists; otherwise, no action is taken.
    `void` | `removeFilterMap​(FilterMap filterMap)` | Remove a filter mapping from this Context.
    `void` | `removeMimeMapping​(java.lang.String extension)` | Remove the MIME mapping for the specified extension, if it exists; otherwise, no action is taken.
    `void` | `removeParameter​(java.lang.String name)` | Remove the context initialization parameter with the specified name, if it exists; otherwise, no action is taken.
    `void` | `removePostConstructMethod​(java.lang.String clazz)` | Removes the post construct method definition for the given class, if it exists; otherwise, no action is taken.
    `void` | `removePreDestroyMethod​(java.lang.String clazz)` | Removes the pre destroy method definition for the given class, if it exists; otherwise, no action is taken.
    `void` | `removePropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Remove a property change listener from this component.
    `void` | `removeRoleMapping​(java.lang.String role)` | Remove any security role reference for the specified name
    `void` | `removeSecurityRole​(java.lang.String role)` | Remove any security role with the specified name.
    `void` | `removeServletMapping​(java.lang.String pattern)` | Remove any servlet mapping for the specified pattern, if it exists; otherwise, no action is taken.
    `void` | `removeWatchedResource​(java.lang.String name)` | Remove the specified watched resource name from the list associated with this Context.
    `void` | `removeWelcomeFile​(java.lang.String name)` | Remove the specified welcome file name from the list recognized by this Context.
    `void` | `removeWrapperLifecycle​(java.lang.String listener)` | Remove a class name from the set of LifecycleListener classes that will be added to newly created Wrappers.
    `void` | `removeWrapperListener​(java.lang.String listener)` | Remove a class name from the set of ContainerListener classes that will be added to newly created Wrappers.
    `void` | `setAddWebinfClassesResources​(boolean addWebinfClassesResources)` | Sets the flag that indicates if /WEB-INF/classes should be treated like an exploded JAR and JAR resources made available as if they were in a JAR.
    `void` | `setAllowCasualMultipartParsing​(boolean allowCasualMultipartParsing)` | Set to `true` to allow requests mapped to servlets that do not explicitly declare @MultipartConfig or have <multipart-config> specified in web.xml to parse multipart/form-data requests.
    `void` | `setAllowMultipleLeadingForwardSlashInPath​(boolean allowMultipleLeadingForwardSlashInPath)` | Configure if, when returning a context path from `HttpServletRequest.getContextPath()`, the return value is allowed to contain multiple leading '/' characters.
    `void` | `setAltDDName​(java.lang.String altDDName)` | Set an alternate Deployment Descriptor name.
    `void` | `setApplicationEventListeners​(java.lang.Object[] listeners)` | Store the set of initialized application event listener objects, in the order they were specified in the web application deployment descriptor, for this application.
    `void` | `setApplicationLifecycleListeners​(java.lang.Object[] listeners)` | Store the set of initialized application lifecycle listener objects, in the order they were specified in the web application deployment descriptor, for this application.
    `void` | `setBackgroundProcessorDelay​(int delay)` | Set the delay between the invocation of the execute method on this container and its children.
    `void` | `setCluster​(Cluster cluster)` | Set the Cluster with which this Container is associated.
    `void` | `setConfigFile​(java.net.URL configFile)` | Set the URL of the XML descriptor for this context.
    `void` | `setConfigured​(boolean configured)` | Set the "correctly configured" flag for this Context.
    `void` | `setContainerSciFilter​(java.lang.String containerSciFilter)` | Sets the regular expression that specifies which container provided SCIs should be filtered out and not used for this context.
    `void` | `setCookieProcessor​(CookieProcessor cookieProcessor)` | Sets the `CookieProcessor` that will be used to process cookies for this Context.
    `void` | `setCookies​(boolean cookies)` | Set the "use cookies for session ids" flag.
    `void` | `setCreateUploadTargets​(boolean createUploadTargets)` | Configure whether Tomcat will attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it.
    `void` | `setCrossContext​(boolean crossContext)` | Set the "allow crossing servlet contexts" flag.
    `void` | `setDenyUncoveredHttpMethods​(boolean denyUncoveredHttpMethods)` | Set the deny-uncovered-http-methods flag for this web application.
    `void` | `setDispatchersUseEncodedPaths​(boolean dispatchersUseEncodedPaths)` | Are paths used in calls to obtain a request dispatcher expected to be encoded?
    `void` | `setDisplayName​(java.lang.String displayName)` | Set the display name of this web application.
    `void` | `setDistributable​(boolean distributable)` | Set the distributable flag for this web application.
    `void` | `setDocBase​(java.lang.String docBase)` | Set the document root for this Context.
    `void` | `setEffectiveMajorVersion​(int major)` | Set the effective major version of the Servlet spec used by this context.
    `void` | `setEffectiveMinorVersion​(int minor)` | Set the effective minor version of the Servlet spec used by this context.
    `void` | `setFireRequestListenersOnForwards​(boolean enable)` | Configure whether or not requests listeners will be fired on forwards for this Context.
    `void` | `setIgnoreAnnotations​(boolean ignoreAnnotations)` | Set the boolean on the annotations parsing for this web application.
    `void` | `setInstanceManager​(InstanceManager instanceManager)` | Set the instance manager associated with this context.
    `void` | `setJarScanner​(JarScanner jarScanner)` | Set the Jar Scanner to be used to scan for JAR resources for this context.
    `void` | `setJspConfigDescriptor​(JspConfigDescriptor descriptor)` | Set the JspConfigDescriptor for this context.
    `void` | `setLoader​(Loader loader)` | Set the Loader with which this Context is associated.
    `void` | `setLogEffectiveWebXml​(boolean logEffectiveWebXml)` | Set whether or not the effective web.xml for this context should be logged on context start.
    `void` | `setLoginConfig​(LoginConfig config)` | Set the login configuration descriptor for this web application.
    `void` | `setManager​(Manager manager)` | Set the Manager with which this Context is associated.
    `void` | `setMapperContextRootRedirectEnabled​(boolean mapperContextRootRedirectEnabled)` | If enabled, requests for a web application context root will be redirected (adding a trailing slash) by the Mapper.
    `void` | `setMapperDirectoryRedirectEnabled​(boolean mapperDirectoryRedirectEnabled)` | If enabled, requests for a directory will be redirected (adding a trailing slash) by the Mapper.
    `void` | `setName​(java.lang.String name)` | Set a name string (suitable for use by humans) that describes this Container.
    `void` | `setNamingResources​(NamingResourcesImpl namingResources)` | Set the naming resources for this web application.
    `void` | `setOverride​(boolean override)` | Set the override flag for this web application.
    `void` | `setParallelAnnotationScanning​(boolean parallelAnnotationScanning)` | Set the parallel annotation scanning value.
    `void` | `setParent​(Container parent)` | Set the parent Container to which this Container is being added as a child.
    `void` | `setParentClassLoader​(java.lang.ClassLoader parent)` | Set the parent class loader for this component.
    `void` | `setPath​(java.lang.String path)` | Set the context path for this web application.
    `void` | `setPreemptiveAuthentication​(boolean enable)` | Configures if a user presents authentication credentials, whether the context will process them when the request is for a non-protected resource.
    `void` | `setPrivileged​(boolean privileged)` | Set the privileged flag for this web application.
    `void` | `setPublicId​(java.lang.String publicId)` | Set the public identifier of the deployment descriptor DTD that is currently being parsed.
    `void` | `setRealm​(Realm realm)` | Set the Realm with which this Container is associated.
    `void` | `setReloadable​(boolean reloadable)` | Set the reloadable flag for this web application.
    `void` | `setRequestCharacterEncoding​(java.lang.String encoding)` | Set the default request body encoding for this web application.
    `void` | `setResourceOnlyServlets​(java.lang.String resourceOnlyServlets)` | Sets the (comma separated) list of Servlets that expect a resource to be present.
    `void` | `setResources​(WebResourceRoot resources)` | Set the Resources object with which this Context is associated.
    `void` | `setResponseCharacterEncoding​(java.lang.String encoding)` | Set the default response body encoding for this web application.
    `void` | `setSendRedirectBody​(boolean enable)` | Configures if a response body is included when a redirect response is sent to the client.
    `void` | `setSessionCookieDomain​(java.lang.String sessionCookieDomain)` | Sets the domain to use for session cookies.
    `void` | `setSessionCookieName​(java.lang.String sessionCookieName)` | Sets the name to use for session cookies.
    `void` | `setSessionCookiePath​(java.lang.String sessionCookiePath)` | Sets the path to use for session cookies.
    `void` | `setSessionCookiePathUsesTrailingSlash​(boolean sessionCookiePathUsesTrailingSlash)` | Configures if a / is added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
    `void` | `setSessionTimeout​(int timeout)` | Set the default session timeout (in minutes) for this web application.
    `void` | `setStartStopThreads​(int startStopThreads)` | Sets the number of threads available for starting and stopping any children associated with this container.
    `void` | `setSwallowAbortedUploads​(boolean swallowAbortedUploads)` | Set to `false` to disable request data swallowing after an upload was aborted due to size constraints.
    `void` | `setSwallowOutput​(boolean swallowOutput)` | Set the value of the swallowOutput flag.
    `void` | `setThreadBindingListener​(ThreadBindingListener threadBindingListener)` | Get the associated ThreadBindingListener.
    `void` | `setTldValidation​(boolean tldValidation)` | Controls whether the parsing of *.tld files for this Context will be performed by a validating parser.
    `void` | `setUseBloomFilterForArchives​(boolean useBloomFilterForArchives)` | Set bloom filter flag value.
    `void` | `setUseHttpOnly​(boolean useHttpOnly)` | Sets the use HttpOnly cookies for session cookies flag.
    `void` | `setUseRelativeRedirects​(boolean useRelativeRedirects)` | Controls whether HTTP 1.1 and later location headers generated by a call to `HttpServletResponse.sendRedirect(String)` will use relative or absolute redirects.
    `void` | `setValidateClientProvidedNewSessionId​(boolean validateClientProvidedNewSessionId)` | When a client provides the ID for a new session, should that ID be validated?
    `void` | `setWebappVersion​(java.lang.String webappVersion)` | Set the version of this web application - used to differentiate different versions of the same web application when using parallel deployment.
    `void` | `setWrapperClass​(java.lang.String wrapperClass)` | Set the Java class name of the Wrapper implementation used for servlets registered in this Context.
    `void` | `setXmlBlockExternal​(boolean xmlBlockExternal)` | Controls whether the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context will block the use of external entities.
    `void` | `setXmlNamespaceAware​(boolean xmlNamespaceAware)` | Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a namespace aware parser.
    `void` | `setXmlValidation​(boolean xmlValidation)` | Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a validating parser.
    `protected void` | `startInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STARTING` during the execution of this method.
    `protected void` | `stopInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method.
    `java.lang.String` | `toString()` |
    `void` | `unbind​(boolean usePrivilegedAction, java.lang.ClassLoader originalClassLoader)` | Restore the current thread context class loader to the original class loader in used before `ContextBind.bind(boolean, ClassLoader)` was called.

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `destroyInternal, getDomain, getObjectName, initInternal, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.Container

      `getDomain, getObjectName`

    - ### Methods inherited from interface org.apache.catalina.Context

      `addServletMappingDecoded, isParallelAnnotationScanning`

    - ### Methods inherited from interface org.apache.catalina.Lifecycle

      `addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

  - ### Constructor Detail

    - #### FailedContext

          public FailedContext()

  - ### Method Detail

    - #### getConfigFile

          public java.net.URL getConfigFile()

      Description copied from interface: `Context`
      Return the URL of the XML descriptor for this context.
      Specified by:
        `getConfigFile` in interface `Context`
      Returns:
        The URL of the XML descriptor for this context

    - #### setConfigFile

          public void setConfigFile​(java.net.URL configFile)

      Description copied from interface: `Context`
      Set the URL of the XML descriptor for this context.
      Specified by:
        `setConfigFile` in interface `Context`
      Parameters:
        `configFile` - The URL of the XML descriptor for this context.

    - #### getDocBase

          public java.lang.String getDocBase()

      Description copied from interface: `Context`
      Obtain the document root for this Context.
      Specified by:
        `getDocBase` in interface `Context`
      Returns:
        An absolute pathname or a relative (to the Host's appBase) pathname.

    - #### setDocBase

          public void setDocBase​(java.lang.String docBase)

      Description copied from interface: `Context`
      Set the document root for this Context. This can be either an absolute pathname or a relative pathname. Relative pathnames are relative to the containing Host's appBase.
      Specified by:
        `setDocBase` in interface `Context`
      Parameters:
        `docBase` - The new document root

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `Container`
      Return a name string (suitable for use by humans) that describes this Container. Within the set of child containers belonging to a particular parent, Container names must be unique.
      Specified by:
        `getName` in interface `Container`
      Returns:
        The human readable name of this container.

    - #### setName

          public void setName​(java.lang.String name)

      Description copied from interface: `Container`
      Set a name string (suitable for use by humans) that describes this Container. Within the set of child containers belonging to a particular parent, Container names must be unique.
      Specified by:
        `setName` in interface `Container`
      Parameters:
        `name` - New name of this container

    - #### getParent

          public Container getParent()

      Description copied from interface: `Container`
      Get the parent container.
      Specified by:
        `getParent` in interface `Container`
      Returns:
        Return the Container for which this Container is a child, if there is one. If there is no defined parent, return `null`.

    - #### setParent

          public void setParent​(Container parent)

      Description copied from interface: `Container`
      Set the parent Container to which this Container is being added as a child. This Container may refuse to become attached to the specified Container by throwing an exception.
      Specified by:
        `setParent` in interface `Container`
      Parameters:
        `parent` - Container to which this Container is being added as a child

    - #### getPath

          public java.lang.String getPath()

      Specified by:
        `getPath` in interface `Context`
      Returns:
        the context path for this web application.

    - #### setPath

          public void setPath​(java.lang.String path)

      Description copied from interface: `Context`
      Set the context path for this web application.
      Specified by:
        `setPath` in interface `Context`
      Parameters:
        `path` - The new context path

    - #### getWebappVersion

          public java.lang.String getWebappVersion()

      Specified by:
        `getWebappVersion` in interface `Context`
      Returns:
        The version of this web application, used to differentiate different versions of the same web application when using parallel deployment. If not specified, defaults to the empty string.

    - #### setWebappVersion

          public void setWebappVersion​(java.lang.String webappVersion)

      Description copied from interface: `Context`
      Set the version of this web application - used to differentiate different versions of the same web application when using parallel deployment.
      Specified by:
        `setWebappVersion` in interface `Context`
      Parameters:
        `webappVersion` - The webapp version associated with the context, which should be unique

    - #### getDomainInternal

          protected java.lang.String getDomainInternal()

      Description copied from class: `LifecycleMBeanBase`
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Specified by:
        `getDomainInternal` in class `LifecycleMBeanBase`
      Returns:
        The name of the domain to use to register MBeans.

    - #### getMBeanKeyProperties

          public java.lang.String getMBeanKeyProperties()

      Description copied from interface: `Container`
      Calculate the key properties string to be added to an object's `ObjectName` to indicate that it is associated with this container.
      Specified by:
        `getMBeanKeyProperties` in interface `Container`
      Returns:
        A string suitable for appending to the ObjectName

    - #### getObjectNameKeyProperties

          protected java.lang.String getObjectNameKeyProperties()

      Description copied from class: `LifecycleMBeanBase`
      Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
      Specified by:
        `getObjectNameKeyProperties` in class `LifecycleMBeanBase`
      Returns:
        The string representation of the key properties component of the desired `ObjectName`

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Description copied from class: `LifecycleBase`
      Sub-classes must ensure that the state is changed to `LifecycleState.STARTING` during the execution of this method. Changing state will trigger the `Lifecycle.START_EVENT` event. If a component fails to start it may either throw a `LifecycleException` which will cause it's parent to fail to start or it can place itself in the error state in which case `LifecycleBase.stop()` will be called on the failed component but the parent component will continue to start normally.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - Start error occurred

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleBase`
      Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method. Changing state will trigger the `Lifecycle.STOP_EVENT` event.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - Stop error occurred

    - #### addWatchedResource

          public void addWatchedResource​(java.lang.String name)

      Description copied from interface: `Context`
      Add a resource which will be watched for reloading by the host auto deployer. Note: this will not be used in embedded mode.
      Specified by:
        `addWatchedResource` in interface `Context`
      Parameters:
        `name` - Path to the resource, relative to docBase

    - #### findWatchedResources

          public java.lang.String[] findWatchedResources()

      Specified by:
        `findWatchedResources` in interface `Context`
      Returns:
        the set of watched resources for this Context. If none are defined, a zero length array will be returned.

    - #### removeWatchedResource

          public void removeWatchedResource​(java.lang.String name)

      Description copied from interface: `Context`
      Remove the specified watched resource name from the list associated with this Context.
      Specified by:
        `removeWatchedResource` in interface `Context`
      Parameters:
        `name` - Name of the watched resource to be removed

    - #### addChild

          public void addChild​(Container child)

      Description copied from interface: `Container`
      Add a new child Container to those associated with this Container, if supported. Prior to adding this Container to the set of children, the child's `setParent()` method must be called, with this Container as an argument. This method may thrown an `IllegalArgumentException` if this Container chooses not to be attached to the specified Container, in which case it is not added
      Specified by:
        `addChild` in interface `Container`
      Parameters:
        `child` - New child Container to be added

    - #### findChild

          public Container findChild​(java.lang.String name)

      Description copied from interface: `Container`
      Obtain a child Container by name.
      Specified by:
        `findChild` in interface `Container`
      Parameters:
        `name` - Name of the child Container to be retrieved
      Returns:
        The child Container with the given name or `null` if no such child exists.

    - #### findChildren

          public Container[] findChildren()

      Description copied from interface: `Container`
      Obtain the child Containers associated with this Container.
      Specified by:
        `findChildren` in interface `Container`
      Returns:
        An array containing all children of this container. If this Container has no children, a zero-length array is returned.

    - #### removeChild

          public void removeChild​(Container child)

      Description copied from interface: `Container`
      Remove an existing child Container from association with this parent Container.
      Specified by:
        `removeChild` in interface `Container`
      Parameters:
        `child` - Existing child Container to be removed

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getLoader

          public Loader getLoader()

      Specified by:
        `getLoader` in interface `Context`
      Returns:
        the Loader with which this Context is associated.

    - #### setLoader

          public void setLoader​(Loader loader)

      Description copied from interface: `Context`
      Set the Loader with which this Context is associated.
      Specified by:
        `setLoader` in interface `Context`
      Parameters:
        `loader` - The newly associated loader

    - #### getLogger

          public Log getLogger()

      Description copied from interface: `Container`
      Obtain the log to which events for this container should be logged.
      Specified by:
        `getLogger` in interface `Container`
      Returns:
        The Logger with which this Container is associated. If there is no associated Logger, return the Logger associated with the parent Container (if any); otherwise return `null`.

    - #### getLogName

          public java.lang.String getLogName()

      Description copied from interface: `Container`
      Return the logger name that the container will use.
      Specified by:
        `getLogName` in interface `Container`
      Returns:
        the abbreviated name of this container for logging messages

    - #### getManager

          public Manager getManager()

      Specified by:
        `getManager` in interface `Context`
      Returns:
        the Manager with which this Context is associated. If there is no associated Manager, return `null`.

    - #### setManager

          public void setManager​(Manager manager)

      Description copied from interface: `Context`
      Set the Manager with which this Context is associated.
      Specified by:
        `setManager` in interface `Context`
      Parameters:
        `manager` - The newly associated Manager

    - #### getPipeline

          public Pipeline getPipeline()

      Description copied from interface: `Container`
      Return the Pipeline object that manages the Valves associated with this Container.
      Specified by:
        `getPipeline` in interface `Container`
      Returns:
        The Pipeline

    - #### getCluster

          public Cluster getCluster()

      Description copied from interface: `Container`
      Get the Cluster for this container.
      Specified by:
        `getCluster` in interface `Container`
      Returns:
        The Cluster with which this Container is associated. If there is no associated Cluster, return the Cluster associated with our parent Container (if any); otherwise return `null`.

    - #### setCluster

          public void setCluster​(Cluster cluster)

      Description copied from interface: `Container`
      Set the Cluster with which this Container is associated.
      Specified by:
        `setCluster` in interface `Container`
      Parameters:
        `cluster` - the Cluster with which this Container is associated.

    - #### getBackgroundProcessorDelay

          public int getBackgroundProcessorDelay()

      Description copied from interface: `Container`
      Get the delay between the invocation of the backgroundProcess method on this container and its children. Child containers will not be invoked if their delay value is positive (which would mean they are using their own thread). Setting this to a positive value will cause a thread to be spawned. After waiting the specified amount of time, the thread will invoke the `Container.backgroundProcess()` method on this container and all children with non-positive delay values.
      Specified by:
        `getBackgroundProcessorDelay` in interface `Container`
      Returns:
        The delay between the invocation of the backgroundProcess method on this container and its children. A non-positive value indicates that background processing will be managed by the parent.

    - #### setBackgroundProcessorDelay

          public void setBackgroundProcessorDelay​(int delay)

      Description copied from interface: `Container`
      Set the delay between the invocation of the execute method on this container and its children.
      Specified by:
        `setBackgroundProcessorDelay` in interface `Container`
      Parameters:
        `delay` - The delay in seconds between the invocation of backgroundProcess methods

    - #### getParentClassLoader

          public java.lang.ClassLoader getParentClassLoader()

      Description copied from interface: `Container`
      Get the parent class loader.
      Specified by:
        `getParentClassLoader` in interface `Container`
      Returns:
        the parent class loader for this component. If not set, return `Container.getParent()`.`Container.getParentClassLoader()`. If no parent has been set, return the system class loader.

    - #### setParentClassLoader

          public void setParentClassLoader​(java.lang.ClassLoader parent)

      Description copied from interface: `Container`
      Set the parent class loader for this component. For `Context`s this call is meaningful only before a Loader has been configured, and the specified value (if non-null) should be passed as an argument to the class loader constructor.
      Specified by:
        `setParentClassLoader` in interface `Container`
      Parameters:
        `parent` - The new parent class loader

    - #### getRealm

          public Realm getRealm()

      Description copied from interface: `Container`
      Obtain the Realm with which this Container is associated.
      Specified by:
        `getRealm` in interface `Container`
      Returns:
        The associated Realm; if there is no associated Realm, the Realm associated with the parent Container (if any); otherwise return `null`.

    - #### setRealm

          public void setRealm​(Realm realm)

      Description copied from interface: `Container`
      Set the Realm with which this Container is associated.
      Specified by:
        `setRealm` in interface `Container`
      Parameters:
        `realm` - The newly associated Realm

    - #### getResources

          public WebResourceRoot getResources()

      Specified by:
        `getResources` in interface `Context`
      Returns:
        the Resources with which this Context is associated.

    - #### setResources

          public void setResources​(WebResourceRoot resources)

      Description copied from interface: `Context`
      Set the Resources object with which this Context is associated.
      Specified by:
        `setResources` in interface `Context`
      Parameters:
        `resources` - The newly associated Resources

    - #### backgroundProcess

          public void backgroundProcess()

      Description copied from interface: `Container`
      Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.
      Specified by:
        `backgroundProcess` in interface `Container`

    - #### addContainerListener

          public void addContainerListener​(ContainerListener listener)

      Description copied from interface: `Container`
      Add a container event listener to this component.
      Specified by:
        `addContainerListener` in interface `Container`
      Parameters:
        `listener` - The listener to add

    - #### findContainerListeners

          public ContainerListener[] findContainerListeners()

      Description copied from interface: `Container`
      Obtain the container listeners associated with this Container.
      Specified by:
        `findContainerListeners` in interface `Container`
      Returns:
        An array containing the container listeners associated with this Container. If this Container has no registered container listeners, a zero-length array is returned.

    - #### removeContainerListener

          public void removeContainerListener​(ContainerListener listener)

      Description copied from interface: `Container`
      Remove a container event listener from this component.
      Specified by:
        `removeContainerListener` in interface `Container`
      Parameters:
        `listener` - The listener to remove

    - #### addPropertyChangeListener

          public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Description copied from interface: `Container`
      Add a property change listener to this component.
      Specified by:
        `addPropertyChangeListener` in interface `Container`
      Parameters:
        `listener` - The listener to add

    - #### removePropertyChangeListener

          public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Description copied from interface: `Container`
      Remove a property change listener from this component.
      Specified by:
        `removePropertyChangeListener` in interface `Container`
      Parameters:
        `listener` - The listener to remove

    - #### fireContainerEvent

          public void fireContainerEvent​(java.lang.String type,
                                         java.lang.Object data)

      Description copied from interface: `Container`
      Notify all container event listeners that a particular event has occurred for this Container. The default implementation performs this notification synchronously using the calling thread.
      Specified by:
        `fireContainerEvent` in interface `Container`
      Parameters:
        `type` - Event type
        `data` - Event data

    - #### logAccess

          public void logAccess​(Request request,
                                Response response,
                                long time,
                                boolean useDefault)

      Description copied from interface: `Container`
      Log a request/response that was destined for this container but has been handled earlier in the processing chain so that the request/response still appears in the correct access logs.
      Specified by:
        `logAccess` in interface `Container`
      Parameters:
        `request` - Request (associated with the response) to log
        `response` - Response (associated with the request) to log
        `time` - Time taken to process the request/response in milliseconds (use 0 if not known)
        `useDefault` - Flag that indicates that the request/response should be logged in the engine's default access log

    - #### getAccessLog

          public AccessLog getAccessLog()

      Description copied from interface: `Container`
      Obtain the AccessLog to use to log a request/response that is destined for this container. This is typically used when the request/response was handled (and rejected) earlier in the processing chain so that the request/response still appears in the correct access logs.
      Specified by:
        `getAccessLog` in interface `Container`
      Returns:
        The AccessLog to use for a request/response destined for this container

    - #### getStartStopThreads

          public int getStartStopThreads()

      Description copied from interface: `Container`
      Obtain the number of threads available for starting and stopping any children associated with this container. This allows start/stop calls to children to be processed in parallel.
      Specified by:
        `getStartStopThreads` in interface `Container`
      Returns:
        The currently configured number of threads used to start/stop children associated with this container

    - #### setStartStopThreads

          public void setStartStopThreads​(int startStopThreads)

      Description copied from interface: `Container`
      Sets the number of threads available for starting and stopping any children associated with this container. This allows start/stop calls to children to be processed in parallel.
      Specified by:
        `setStartStopThreads` in interface `Container`
      Parameters:
        `startStopThreads` - The new number of threads to be used

    - #### getAllowCasualMultipartParsing

          public boolean getAllowCasualMultipartParsing()

      Description copied from interface: `Context`
      Returns `true` if requests mapped to servlets without "multipart config" to parse multipart/form-data requests anyway.
      Specified by:
        `getAllowCasualMultipartParsing` in interface `Context`
      Returns:
        `true` if requests mapped to servlets without "multipart config" to parse multipart/form-data requests, `false` otherwise.

    - #### setAllowCasualMultipartParsing

          public void setAllowCasualMultipartParsing​(boolean allowCasualMultipartParsing)

      Description copied from interface: `Context`
      Set to `true` to allow requests mapped to servlets that do not explicitly declare @MultipartConfig or have <multipart-config> specified in web.xml to parse multipart/form-data requests.
      Specified by:
        `setAllowCasualMultipartParsing` in interface `Context`
      Parameters:
        `allowCasualMultipartParsing` - `true` to allow such casual parsing, `false` otherwise.

    - #### getApplicationEventListeners

          public java.lang.Object[] getApplicationEventListeners()

      Description copied from interface: `Context`
      Obtain the registered application event listeners.
      Specified by:
        `getApplicationEventListeners` in interface `Context`
      Returns:
        An array containing the application event listener instances for this web application in the order they were specified in the web application deployment descriptor

    - #### setApplicationEventListeners

          public void setApplicationEventListeners​(java.lang.Object[] listeners)

      Description copied from interface: `Context`
      Store the set of initialized application event listener objects, in the order they were specified in the web application deployment descriptor, for this application.
      Specified by:
        `setApplicationEventListeners` in interface `Context`
      Parameters:
        `listeners` - The set of instantiated listener objects.

    - #### getApplicationLifecycleListeners

          public java.lang.Object[] getApplicationLifecycleListeners()

      Description copied from interface: `Context`
      Obtain the registered application lifecycle listeners.
      Specified by:
        `getApplicationLifecycleListeners` in interface `Context`
      Returns:
        An array containing the application lifecycle listener instances for this web application in the order they were specified in the web application deployment descriptor

    - #### setApplicationLifecycleListeners

          public void setApplicationLifecycleListeners​(java.lang.Object[] listeners)

      Description copied from interface: `Context`
      Store the set of initialized application lifecycle listener objects, in the order they were specified in the web application deployment descriptor, for this application.
      Specified by:
        `setApplicationLifecycleListeners` in interface `Context`
      Parameters:
        `listeners` - The set of instantiated listener objects.

    - #### getCharset

          public java.lang.String getCharset​(java.util.Locale locale)

      Description copied from interface: `Context`
      Obtain the character set name to use with the given Locale. Note that different Contexts may have different mappings of Locale to character set.
      Specified by:
        `getCharset` in interface `Context`
      Parameters:
        `locale` - The locale for which the mapped character set should be returned
      Returns:
        The name of the character set to use with the given Locale

    - #### getConfigured

          public boolean getConfigured()

      Description copied from interface: `Context`
      Return the "correctly configured" flag for this Context.
      Specified by:
        `getConfigured` in interface `Context`
      Returns:
        `true` if the Context has been correctly configured, otherwise `false`

    - #### setConfigured

          public void setConfigured​(boolean configured)

      Description copied from interface: `Context`
      Set the "correctly configured" flag for this Context. This can be set to false by startup listeners that detect a fatal configuration error to avoid the application from being made available.
      Specified by:
        `setConfigured` in interface `Context`
      Parameters:
        `configured` - The new correctly configured flag

    - #### getCookies

          public boolean getCookies()

      Description copied from interface: `Context`
      Return the "use cookies for session ids" flag.
      Specified by:
        `getCookies` in interface `Context`
      Returns:
        `true` if it is permitted to use cookies to track session IDs for this web application, otherwise `false`

    - #### setCookies

          public void setCookies​(boolean cookies)

      Description copied from interface: `Context`
      Set the "use cookies for session ids" flag.
      Specified by:
        `setCookies` in interface `Context`
      Parameters:
        `cookies` - The new flag

    - #### getSessionCookieName

          public java.lang.String getSessionCookieName()

      Description copied from interface: `Context`
      Gets the name to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `getSessionCookieName` in interface `Context`
      Returns:
        The value of the default session cookie name or null if not specified

    - #### setSessionCookieName

          public void setSessionCookieName​(java.lang.String sessionCookieName)

      Description copied from interface: `Context`
      Sets the name to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `setSessionCookieName` in interface `Context`
      Parameters:
        `sessionCookieName` - The name to use

    - #### getUseHttpOnly

          public boolean getUseHttpOnly()

      Description copied from interface: `Context`
      Gets the value of the use HttpOnly cookies for session cookies flag.
      Specified by:
        `getUseHttpOnly` in interface `Context`
      Returns:
        `true` if the HttpOnly flag should be set on session cookies

    - #### setUseHttpOnly

          public void setUseHttpOnly​(boolean useHttpOnly)

      Description copied from interface: `Context`
      Sets the use HttpOnly cookies for session cookies flag.
      Specified by:
        `setUseHttpOnly` in interface `Context`
      Parameters:
        `useHttpOnly` - Set to `true` to use HttpOnly cookies for session cookies

    - #### getSessionCookieDomain

          public java.lang.String getSessionCookieDomain()

      Description copied from interface: `Context`
      Gets the domain to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `getSessionCookieDomain` in interface `Context`
      Returns:
        The value of the default session cookie domain or null if not specified

    - #### setSessionCookieDomain

          public void setSessionCookieDomain​(java.lang.String sessionCookieDomain)

      Description copied from interface: `Context`
      Sets the domain to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `setSessionCookieDomain` in interface `Context`
      Parameters:
        `sessionCookieDomain` - The domain to use

    - #### getSessionCookiePath

          public java.lang.String getSessionCookiePath()

      Description copied from interface: `Context`
      Gets the path to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `getSessionCookiePath` in interface `Context`
      Returns:
        The value of the default session cookie path or null if not specified

    - #### setSessionCookiePath

          public void setSessionCookiePath​(java.lang.String sessionCookiePath)

      Description copied from interface: `Context`
      Sets the path to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
        `setSessionCookiePath` in interface `Context`
      Parameters:
        `sessionCookiePath` - The path to use

    - #### getSessionCookiePathUsesTrailingSlash

          public boolean getSessionCookiePathUsesTrailingSlash()

      Description copied from interface: `Context`
      Is a / added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
      Specified by:
        `getSessionCookiePathUsesTrailingSlash` in interface `Context`
      Returns:
        `true` if the slash is added, otherwise `false`

    - #### setSessionCookiePathUsesTrailingSlash

          public void setSessionCookiePathUsesTrailingSlash​(boolean sessionCookiePathUsesTrailingSlash)

      Description copied from interface: `Context`
      Configures if a / is added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
      Specified by:
        `setSessionCookiePathUsesTrailingSlash` in interface `Context`
      Parameters:
        `sessionCookiePathUsesTrailingSlash` - `true` if the slash is should be added, otherwise `false`

    - #### getCrossContext

          public boolean getCrossContext()

      Description copied from interface: `Context`
      Return the "allow crossing servlet contexts" flag.
      Specified by:
        `getCrossContext` in interface `Context`
      Returns:
        `true` if cross-contest requests are allowed from this web applications, otherwise `false`

    - #### setCrossContext

          public void setCrossContext​(boolean crossContext)

      Description copied from interface: `Context`
      Set the "allow crossing servlet contexts" flag.
      Specified by:
        `setCrossContext` in interface `Context`
      Parameters:
        `crossContext` - The new cross contexts flag

    - #### getAltDDName

          public java.lang.String getAltDDName()

      Description copied from interface: `Context`
      Return the alternate Deployment Descriptor name.
      Specified by:
        `getAltDDName` in interface `Context`
      Returns:
        the name

    - #### setAltDDName

          public void setAltDDName​(java.lang.String altDDName)

      Description copied from interface: `Context`
      Set an alternate Deployment Descriptor name.
      Specified by:
        `setAltDDName` in interface `Context`
      Parameters:
        `altDDName` - The new name

    - #### getDenyUncoveredHttpMethods

          public boolean getDenyUncoveredHttpMethods()

      Description copied from interface: `Context`
      Return the deny-uncovered-http-methods flag for this web application.
      Specified by:
        `getDenyUncoveredHttpMethods` in interface `Context`
      Returns:
        The current value of the flag

    - #### setDenyUncoveredHttpMethods

          public void setDenyUncoveredHttpMethods​(boolean denyUncoveredHttpMethods)

      Description copied from interface: `Context`
      Set the deny-uncovered-http-methods flag for this web application.
      Specified by:
        `setDenyUncoveredHttpMethods` in interface `Context`
      Parameters:
        `denyUncoveredHttpMethods` - The new deny-uncovered-http-methods flag

    - #### getDisplayName

          public java.lang.String getDisplayName()

      Description copied from interface: `Context`
      Return the display name of this web application.
      Specified by:
        `getDisplayName` in interface `Context`
      Returns:
        The display name

    - #### setDisplayName

          public void setDisplayName​(java.lang.String displayName)

      Description copied from interface: `Context`
      Set the display name of this web application.
      Specified by:
        `setDisplayName` in interface `Context`
      Parameters:
        `displayName` - The new display name

    - #### getDistributable

          public boolean getDistributable()

      Description copied from interface: `Context`
      Get the distributable flag for this web application.
      Specified by:
        `getDistributable` in interface `Context`
      Returns:
        The value of the distributable flag for this web application.

    - #### setDistributable

          public void setDistributable​(boolean distributable)

      Description copied from interface: `Context`
      Set the distributable flag for this web application.
      Specified by:
        `setDistributable` in interface `Context`
      Parameters:
        `distributable` - The new distributable flag

    - #### getEncodedPath

          public java.lang.String getEncodedPath()

      Description copied from interface: `Context`
      Return the URL encoded context path
      Specified by:
        `getEncodedPath` in interface `Context`
      Returns:
        The URL encoded (with UTF-8) context path

    - #### getIgnoreAnnotations

          public boolean getIgnoreAnnotations()

      Description copied from interface: `Context`
      Determine if annotations parsing is currently disabled
      Specified by:
        `getIgnoreAnnotations` in interface `Context`
      Returns:
        `true` if annotation parsing is disabled for this web application

    - #### setIgnoreAnnotations

          public void setIgnoreAnnotations​(boolean ignoreAnnotations)

      Description copied from interface: `Context`
      Set the boolean on the annotations parsing for this web application.
      Specified by:
        `setIgnoreAnnotations` in interface `Context`
      Parameters:
        `ignoreAnnotations` - The boolean on the annotations parsing

    - #### getLoginConfig

          public LoginConfig getLoginConfig()

      Specified by:
        `getLoginConfig` in interface `Context`
      Returns:
        the login configuration descriptor for this web application.

    - #### setLoginConfig

          public void setLoginConfig​(LoginConfig config)

      Description copied from interface: `Context`
      Set the login configuration descriptor for this web application.
      Specified by:
        `setLoginConfig` in interface `Context`
      Parameters:
        `config` - The new login configuration

    - #### getNamingResources

          public NamingResourcesImpl getNamingResources()

      Specified by:
        `getNamingResources` in interface `Context`
      Returns:
        the naming resources associated with this web application.

    - #### setNamingResources

          public void setNamingResources​(NamingResourcesImpl namingResources)

      Description copied from interface: `Context`
      Set the naming resources for this web application.
      Specified by:
        `setNamingResources` in interface `Context`
      Parameters:
        `namingResources` - The new naming resources

    - #### getPublicId

          public java.lang.String getPublicId()

      Specified by:
        `getPublicId` in interface `Context`
      Returns:
        the public identifier of the deployment descriptor DTD that is currently being parsed.

    - #### setPublicId

          public void setPublicId​(java.lang.String publicId)

      Description copied from interface: `Context`
      Set the public identifier of the deployment descriptor DTD that is currently being parsed.
      Specified by:
        `setPublicId` in interface `Context`
      Parameters:
        `publicId` - The public identifier

    - #### getReloadable

          public boolean getReloadable()

      Specified by:
        `getReloadable` in interface `Context`
      Returns:
        the reloadable flag for this web application.

    - #### setReloadable

          public void setReloadable​(boolean reloadable)

      Description copied from interface: `Context`
      Set the reloadable flag for this web application.
      Specified by:
        `setReloadable` in interface `Context`
      Parameters:
        `reloadable` - The new reloadable flag

    - #### getOverride

          public boolean getOverride()

      Specified by:
        `getOverride` in interface `Context`
      Returns:
        the override flag for this web application.

    - #### setOverride

          public void setOverride​(boolean override)

      Description copied from interface: `Context`
      Set the override flag for this web application.
      Specified by:
        `setOverride` in interface `Context`
      Parameters:
        `override` - The new override flag

    - #### getPrivileged

          public boolean getPrivileged()

      Specified by:
        `getPrivileged` in interface `Context`
      Returns:
        the privileged flag for this web application.

    - #### setPrivileged

          public void setPrivileged​(boolean privileged)

      Description copied from interface: `Context`
      Set the privileged flag for this web application.
      Specified by:
        `setPrivileged` in interface `Context`
      Parameters:
        `privileged` - The new privileged flag

    - #### getServletContext

          public ServletContext getServletContext()

      Specified by:
        `getServletContext` in interface `Context`
      Returns:
        the Servlet context for which this Context is a facade.

    - #### getSessionTimeout

          public int getSessionTimeout()

      Specified by:
        `getSessionTimeout` in interface `Context`
      Returns:
        the default session timeout (in minutes) for this web application.

    - #### setSessionTimeout

          public void setSessionTimeout​(int timeout)

      Description copied from interface: `Context`
      Set the default session timeout (in minutes) for this web application.
      Specified by:
        `setSessionTimeout` in interface `Context`
      Parameters:
        `timeout` - The new default session timeout

    - #### getSwallowAbortedUploads

          public boolean getSwallowAbortedUploads()

      Description copied from interface: `Context`
      Returns `true` if remaining request data will be read (swallowed) even the request violates a data size constraint.
      Specified by:
        `getSwallowAbortedUploads` in interface `Context`
      Returns:
        `true` if data will be swallowed (default), `false` otherwise.

    - #### setSwallowAbortedUploads

          public void setSwallowAbortedUploads​(boolean swallowAbortedUploads)

      Description copied from interface: `Context`
      Set to `false` to disable request data swallowing after an upload was aborted due to size constraints.
      Specified by:
        `setSwallowAbortedUploads` in interface `Context`
      Parameters:
        `swallowAbortedUploads` - `false` to disable swallowing, `true` otherwise (default).

    - #### getSwallowOutput

          public boolean getSwallowOutput()

      Specified by:
        `getSwallowOutput` in interface `Context`
      Returns:
        the value of the swallowOutput flag.

    - #### setSwallowOutput

          public void setSwallowOutput​(boolean swallowOutput)

      Description copied from interface: `Context`
      Set the value of the swallowOutput flag. If set to true, the system.out and system.err will be redirected to the logger during a servlet execution.
      Specified by:
        `setSwallowOutput` in interface `Context`
      Parameters:
        `swallowOutput` - The new value

    - #### getWrapperClass

          public java.lang.String getWrapperClass()

      Specified by:
        `getWrapperClass` in interface `Context`
      Returns:
        the Java class name of the Wrapper implementation used for servlets registered in this Context.

    - #### setWrapperClass

          public void setWrapperClass​(java.lang.String wrapperClass)

      Description copied from interface: `Context`
      Set the Java class name of the Wrapper implementation used for servlets registered in this Context.
      Specified by:
        `setWrapperClass` in interface `Context`
      Parameters:
        `wrapperClass` - The new wrapper class

    - #### getXmlNamespaceAware

          public boolean getXmlNamespaceAware()

      Description copied from interface: `Context`
      Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a namespace aware parser?
      Specified by:
        `getXmlNamespaceAware` in interface `Context`
      Returns:
        true if namespace awareness is enabled.

    - #### setXmlNamespaceAware

          public void setXmlNamespaceAware​(boolean xmlNamespaceAware)

      Description copied from interface: `Context`
      Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a namespace aware parser.
      Specified by:
        `setXmlNamespaceAware` in interface `Context`
      Parameters:
        `xmlNamespaceAware` - true to enable namespace awareness

    - #### getXmlValidation

          public boolean getXmlValidation()

      Description copied from interface: `Context`
      Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a validating parser?
      Specified by:
        `getXmlValidation` in interface `Context`
      Returns:
        true if validation is enabled.

    - #### setXmlValidation

          public void setXmlValidation​(boolean xmlValidation)

      Description copied from interface: `Context`
      Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a validating parser.
      Specified by:
        `setXmlValidation` in interface `Context`
      Parameters:
        `xmlValidation` - true to enable xml validation

    - #### getXmlBlockExternal

          public boolean getXmlBlockExternal()

      Description copied from interface: `Context`
      Will the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context block the use of external entities?
      Specified by:
        `getXmlBlockExternal` in interface `Context`
      Returns:
        true if access to external entities is blocked

    - #### setXmlBlockExternal

          public void setXmlBlockExternal​(boolean xmlBlockExternal)

      Description copied from interface: `Context`
      Controls whether the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context will block the use of external entities.
      Specified by:
        `setXmlBlockExternal` in interface `Context`
      Parameters:
        `xmlBlockExternal` - true to block external entities

    - #### getTldValidation

          public boolean getTldValidation()

      Description copied from interface: `Context`
      Will the parsing of *.tld files for this Context be performed by a validating parser?
      Specified by:
        `getTldValidation` in interface `Context`
      Returns:
        true if validation is enabled.

    - #### setTldValidation

          public void setTldValidation​(boolean tldValidation)

      Description copied from interface: `Context`
      Controls whether the parsing of *.tld files for this Context will be performed by a validating parser.
      Specified by:
        `setTldValidation` in interface `Context`
      Parameters:
        `tldValidation` - true to enable xml validation

    - #### getJarScanner

          public JarScanner getJarScanner()

      Description copied from interface: `Context`
      Get the Jar Scanner to be used to scan for JAR resources for this context.
      Specified by:
        `getJarScanner` in interface `Context`
      Returns:
        The Jar Scanner configured for this context.

    - #### setJarScanner

          public void setJarScanner​(JarScanner jarScanner)

      Description copied from interface: `Context`
      Set the Jar Scanner to be used to scan for JAR resources for this context.
      Specified by:
        `setJarScanner` in interface `Context`
      Parameters:
        `jarScanner` - The Jar Scanner to be used for this context.

    - #### getAuthenticator

          public Authenticator getAuthenticator()

      Specified by:
        `getAuthenticator` in interface `Context`
      Returns:
        the `Authenticator` that is used by this context. This is always non-`null` for a started Context

    - #### setLogEffectiveWebXml

          public void setLogEffectiveWebXml​(boolean logEffectiveWebXml)

      Description copied from interface: `Context`
      Set whether or not the effective web.xml for this context should be logged on context start.
      Specified by:
        `setLogEffectiveWebXml` in interface `Context`
      Parameters:
        `logEffectiveWebXml` - set to `true` to log the complete web.xml that will be used for the webapp

    - #### getLogEffectiveWebXml

          public boolean getLogEffectiveWebXml()

      Description copied from interface: `Context`
      Should the effective web.xml for this context be logged on context start?
      Specified by:
        `getLogEffectiveWebXml` in interface `Context`
      Returns:
        true if the reconstructed web.xml that will be used for the webapp should be logged

    - #### addApplicationListener

          public void addApplicationListener​(java.lang.String listener)

      Description copied from interface: `Context`
      Add a new Listener class name to the set of Listeners configured for this application.
      Specified by:
        `addApplicationListener` in interface `Context`
      Parameters:
        `listener` - Java class name of a listener class

    - #### findApplicationListeners

          public java.lang.String[] findApplicationListeners()

      Specified by:
        `findApplicationListeners` in interface `Context`
      Returns:
        the set of application listener class names configured for this application.

    - #### removeApplicationListener

          public void removeApplicationListener​(java.lang.String listener)

      Description copied from interface: `Context`
      Remove the specified application listener class from the set of listeners for this application.
      Specified by:
        `removeApplicationListener` in interface `Context`
      Parameters:
        `listener` - Java class name of the listener to be removed

    - #### addApplicationParameter

          public void addApplicationParameter​(ApplicationParameter parameter)

      Description copied from interface: `Context`
      Add a new application parameter for this application.
      Specified by:
        `addApplicationParameter` in interface `Context`
      Parameters:
        `parameter` - The new application parameter

    - #### findApplicationParameters

          public ApplicationParameter[] findApplicationParameters()

      Specified by:
        `findApplicationParameters` in interface `Context`
      Returns:
        the set of application parameters for this application.

    - #### removeApplicationParameter

          public void removeApplicationParameter​(java.lang.String name)

      Description copied from interface: `Context`
      Remove the application parameter with the specified name from the set for this application.
      Specified by:
        `removeApplicationParameter` in interface `Context`
      Parameters:
        `name` - Name of the application parameter to remove

    - #### addConstraint

          public void addConstraint​(SecurityConstraint constraint)

      Description copied from interface: `Context`
      Add a security constraint to the set for this web application.
      Specified by:
        `addConstraint` in interface `Context`
      Parameters:
        `constraint` - The security constraint that should be added

    - #### findConstraints

          public SecurityConstraint[] findConstraints()

      Specified by:
        `findConstraints` in interface `Context`
      Returns:
        the set of security constraints for this web application. If there are none, a zero-length array is returned.

    - #### removeConstraint

          public void removeConstraint​(SecurityConstraint constraint)

      Description copied from interface: `Context`
      Remove the specified security constraint from this web application.
      Specified by:
        `removeConstraint` in interface `Context`
      Parameters:
        `constraint` - Constraint to be removed

    - #### addErrorPage

          public void addErrorPage​(ErrorPage errorPage)

      Description copied from interface: `Context`
      Add an error page for the specified error or Java exception.
      Specified by:
        `addErrorPage` in interface `Context`
      Parameters:
        `errorPage` - The error page definition to be added

    - #### findErrorPage

          public ErrorPage findErrorPage​(int errorCode)

      Specified by:
        `findErrorPage` in interface `Context`
      Parameters:
        `errorCode` - Error code to look up
      Returns:
        the error page entry for the specified HTTP error code, if any; otherwise return `null`.

    - #### findErrorPage

          public ErrorPage findErrorPage​(java.lang.String exceptionType)

      Specified by:
        `findErrorPage` in interface `Context`
      Parameters:
        `exceptionType` - Exception type to look up
      Returns:
        the error page entry for the specified Java exception type, if any; otherwise return `null`.

    - #### findErrorPage

          public ErrorPage findErrorPage​(java.lang.Throwable throwable)

      Description copied from interface: `Context`
      Find and return the ErrorPage instance for the specified exception's class, or an ErrorPage instance for the closest superclass for which there is such a definition. If no associated ErrorPage instance is found, return `null`.
      Specified by:
        `findErrorPage` in interface `Context`
      Parameters:
        `throwable` - The exception type for which to find an ErrorPage
      Returns:
        the error page entry for the specified Java exception type, if any; otherwise return `null`.

    - #### findErrorPages

          public ErrorPage[] findErrorPages()

      Specified by:
        `findErrorPages` in interface `Context`
      Returns:
        the set of defined error pages for all specified error codes and exception types.

    - #### removeErrorPage

          public void removeErrorPage​(ErrorPage errorPage)

      Description copied from interface: `Context`
      Remove the error page for the specified error code or Java language exception, if it exists; otherwise, no action is taken.
      Specified by:
        `removeErrorPage` in interface `Context`
      Parameters:
        `errorPage` - The error page definition to be removed

    - #### addFilterDef

          public void addFilterDef​(FilterDef filterDef)

      Description copied from interface: `Context`
      Add a filter definition to this Context.
      Specified by:
        `addFilterDef` in interface `Context`
      Parameters:
        `filterDef` - The filter definition to be added

    - #### findFilterDef

          public FilterDef findFilterDef​(java.lang.String filterName)

      Specified by:
        `findFilterDef` in interface `Context`
      Parameters:
        `filterName` - Filter name to look up
      Returns:
        the filter definition for the specified filter name, if any; otherwise return `null`.

    - #### findFilterDefs

          public FilterDef[] findFilterDefs()

      Specified by:
        `findFilterDefs` in interface `Context`
      Returns:
        the set of defined filters for this Context.

    - #### removeFilterDef

          public void removeFilterDef​(FilterDef filterDef)

      Description copied from interface: `Context`
      Remove the specified filter definition from this Context, if it exists; otherwise, no action is taken.
      Specified by:
        `removeFilterDef` in interface `Context`
      Parameters:
        `filterDef` - Filter definition to be removed

    - #### addFilterMap

          public void addFilterMap​(FilterMap filterMap)

      Description copied from interface: `Context`
      Add a filter mapping to this Context.
      Specified by:
        `addFilterMap` in interface `Context`
      Parameters:
        `filterMap` - The filter mapping to be added

    - #### addFilterMapBefore

          public void addFilterMapBefore​(FilterMap filterMap)

      Description copied from interface: `Context`
      Add a filter mapping to this Context before the mappings defined in the deployment descriptor but after any other mappings added via this method.
      Specified by:
        `addFilterMapBefore` in interface `Context`
      Parameters:
        `filterMap` - The filter mapping to be added

    - #### findFilterMaps

          public FilterMap[] findFilterMaps()

      Specified by:
        `findFilterMaps` in interface `Context`
      Returns:
        the set of filter mappings for this Context.

    - #### removeFilterMap

          public void removeFilterMap​(FilterMap filterMap)

      Description copied from interface: `Context`
      Remove a filter mapping from this Context.
      Specified by:
        `removeFilterMap` in interface `Context`
      Parameters:
        `filterMap` - The filter mapping to be removed

    - #### addLocaleEncodingMappingParameter

          public void addLocaleEncodingMappingParameter​(java.lang.String locale,
                                                        java.lang.String encoding)

      Description copied from interface: `Context`
      Add a Locale Encoding Mapping (see Sec 5.4 of Servlet spec 2.4)
      Specified by:
        `addLocaleEncodingMappingParameter` in interface `Context`
      Parameters:
        `locale` - locale to map an encoding for
        `encoding` - encoding to be used for a give locale

    - #### addMimeMapping

          public void addMimeMapping​(java.lang.String extension,
                                     java.lang.String mimeType)

      Description copied from interface: `Context`
      Add a new MIME mapping, replacing any existing mapping for the specified extension.
      Specified by:
        `addMimeMapping` in interface `Context`
      Parameters:
        `extension` - Filename extension being mapped
        `mimeType` - Corresponding MIME type

    - #### findMimeMapping

          public java.lang.String findMimeMapping​(java.lang.String extension)

      Specified by:
        `findMimeMapping` in interface `Context`
      Parameters:
        `extension` - Extension to map to a MIME type
      Returns:
        the MIME type to which the specified extension is mapped, if any; otherwise return `null`.

    - #### findMimeMappings

          public java.lang.String[] findMimeMappings()

      Specified by:
        `findMimeMappings` in interface `Context`
      Returns:
        the extensions for which MIME mappings are defined. If there are none, a zero-length array is returned.

    - #### removeMimeMapping

          public void removeMimeMapping​(java.lang.String extension)

      Description copied from interface: `Context`
      Remove the MIME mapping for the specified extension, if it exists; otherwise, no action is taken.
      Specified by:
        `removeMimeMapping` in interface `Context`
      Parameters:
        `extension` - Extension to remove the mapping for

    - #### addParameter

          public void addParameter​(java.lang.String name,
                                   java.lang.String value)

      Description copied from interface: `Context`
      Add a new context initialization parameter, replacing any existing value for the specified name.
      Specified by:
        `addParameter` in interface `Context`
      Parameters:
        `name` - Name of the new parameter
        `value` - Value of the new parameter

    - #### findParameter

          public java.lang.String findParameter​(java.lang.String name)

      Specified by:
        `findParameter` in interface `Context`
      Parameters:
        `name` - Name of the parameter to return
      Returns:
        the value for the specified context initialization parameter name, if any; otherwise return `null`.

    - #### findParameters

          public java.lang.String[] findParameters()

      Specified by:
        `findParameters` in interface `Context`
      Returns:
        the names of all defined context initialization parameters for this Context. If no parameters are defined, a zero-length array is returned.

    - #### removeParameter

          public void removeParameter​(java.lang.String name)

      Description copied from interface: `Context`
      Remove the context initialization parameter with the specified name, if it exists; otherwise, no action is taken.
      Specified by:
        `removeParameter` in interface `Context`
      Parameters:
        `name` - Name of the parameter to remove

    - #### addRoleMapping

          public void addRoleMapping​(java.lang.String role,
                                     java.lang.String link)

      Description copied from interface: `Context`
      Add a security role reference for this web application.
      Specified by:
        `addRoleMapping` in interface `Context`
      Parameters:
        `role` - Security role used in the application
        `link` - Actual security role to check for

    - #### findRoleMapping

          public java.lang.String findRoleMapping​(java.lang.String role)

      Description copied from interface: `Context`
      For the given security role (as used by an application), return the corresponding role name (as defined by the underlying Realm) if there is one. Otherwise, return the specified role unchanged.
      Specified by:
        `findRoleMapping` in interface `Context`
      Parameters:
        `role` - Security role to map
      Returns:
        The role name that was mapped to the specified role

    - #### removeRoleMapping

          public void removeRoleMapping​(java.lang.String role)

      Description copied from interface: `Context`
      Remove any security role reference for the specified name
      Specified by:
        `removeRoleMapping` in interface `Context`
      Parameters:
        `role` - Security role (as used in the application) to remove

    - #### addSecurityRole

          public void addSecurityRole​(java.lang.String role)

      Description copied from interface: `Context`
      Add a new security role for this web application.
      Specified by:
        `addSecurityRole` in interface `Context`
      Parameters:
        `role` - New security role

    - #### findSecurityRole

          public boolean findSecurityRole​(java.lang.String role)

      Specified by:
        `findSecurityRole` in interface `Context`
      Parameters:
        `role` - Security role to verify
      Returns:
        `true` if the specified security role is defined for this application; otherwise return `false`.

    - #### findSecurityRoles

          public java.lang.String[] findSecurityRoles()

      Specified by:
        `findSecurityRoles` in interface `Context`
      Returns:
        the security roles defined for this application. If none have been defined, a zero-length array is returned.

    - #### removeSecurityRole

          public void removeSecurityRole​(java.lang.String role)

      Description copied from interface: `Context`
      Remove any security role with the specified name.
      Specified by:
        `removeSecurityRole` in interface `Context`
      Parameters:
        `role` - Security role to remove

    - #### addServletMappingDecoded

          public void addServletMappingDecoded​(java.lang.String pattern,
                                               java.lang.String name,
                                               boolean jspWildcard)

      Description copied from interface: `Context`
      Add a new servlet mapping, replacing any existing mapping for the specified pattern.
      Specified by:
        `addServletMappingDecoded` in interface `Context`
      Parameters:
        `pattern` - URL pattern to be mapped
        `name` - Name of the corresponding servlet to execute
        `jspWildcard` - true if name identifies the JspServlet and pattern contains a wildcard; false otherwise

    - #### findServletMapping

          public java.lang.String findServletMapping​(java.lang.String pattern)

      Specified by:
        `findServletMapping` in interface `Context`
      Parameters:
        `pattern` - Pattern for which a mapping is requested
      Returns:
        the servlet name mapped by the specified pattern (if any); otherwise return `null`.

    - #### findServletMappings

          public java.lang.String[] findServletMappings()

      Specified by:
        `findServletMappings` in interface `Context`
      Returns:
        the patterns of all defined servlet mappings for this Context. If no mappings are defined, a zero-length array is returned.

    - #### removeServletMapping

          public void removeServletMapping​(java.lang.String pattern)

      Description copied from interface: `Context`
      Remove any servlet mapping for the specified pattern, if it exists; otherwise, no action is taken.
      Specified by:
        `removeServletMapping` in interface `Context`
      Parameters:
        `pattern` - URL pattern of the mapping to remove

    - #### addWelcomeFile

          public void addWelcomeFile​(java.lang.String name)

      Description copied from interface: `Context`
      Add a new welcome file to the set recognized by this Context.
      Specified by:
        `addWelcomeFile` in interface `Context`
      Parameters:
        `name` - New welcome file name

    - #### findWelcomeFile

          public boolean findWelcomeFile​(java.lang.String name)

      Specified by:
        `findWelcomeFile` in interface `Context`
      Parameters:
        `name` - Welcome file to verify
      Returns:
        `true` if the specified welcome file is defined for this Context; otherwise return `false`.

    - #### findWelcomeFiles

          public java.lang.String[] findWelcomeFiles()

      Specified by:
        `findWelcomeFiles` in interface `Context`
      Returns:
        the set of welcome files defined for this Context. If none are defined, a zero-length array is returned.

    - #### removeWelcomeFile

          public void removeWelcomeFile​(java.lang.String name)

      Description copied from interface: `Context`
      Remove the specified welcome file name from the list recognized by this Context.
      Specified by:
        `removeWelcomeFile` in interface `Context`
      Parameters:
        `name` - Name of the welcome file to be removed

    - #### addWrapperLifecycle

          public void addWrapperLifecycle​(java.lang.String listener)

      Description copied from interface: `Context`
      Add the classname of a LifecycleListener to be added to each Wrapper appended to this Context.
      Specified by:
        `addWrapperLifecycle` in interface `Context`
      Parameters:
        `listener` - Java class name of a LifecycleListener class

    - #### findWrapperLifecycles

          public java.lang.String[] findWrapperLifecycles()

      Specified by:
        `findWrapperLifecycles` in interface `Context`
      Returns:
        the set of LifecycleListener classes that will be added to newly created Wrappers automatically.

    - #### removeWrapperLifecycle

          public void removeWrapperLifecycle​(java.lang.String listener)

      Description copied from interface: `Context`
      Remove a class name from the set of LifecycleListener classes that will be added to newly created Wrappers.
      Specified by:
        `removeWrapperLifecycle` in interface `Context`
      Parameters:
        `listener` - Class name of a LifecycleListener class to be removed

    - #### addWrapperListener

          public void addWrapperListener​(java.lang.String listener)

      Description copied from interface: `Context`
      Add the classname of a ContainerListener to be added to each Wrapper appended to this Context.
      Specified by:
        `addWrapperListener` in interface `Context`
      Parameters:
        `listener` - Java class name of a ContainerListener class

    - #### findWrapperListeners

          public java.lang.String[] findWrapperListeners()

      Specified by:
        `findWrapperListeners` in interface `Context`
      Returns:
        the set of ContainerListener classes that will be added to newly created Wrappers automatically.

    - #### removeWrapperListener

          public void removeWrapperListener​(java.lang.String listener)

      Description copied from interface: `Context`
      Remove a class name from the set of ContainerListener classes that will be added to newly created Wrappers.
      Specified by:
        `removeWrapperListener` in interface `Context`
      Parameters:
        `listener` - Class name of a ContainerListener class to be removed

    - #### createInstanceManager

          public InstanceManager createInstanceManager()

      Description copied from interface: `Context`
      Factory method to create and return a new InstanceManager instance. This can be used for framework integration or easier configuration with custom Context implementations.
      Specified by:
        `createInstanceManager` in interface `Context`
      Returns:
        the instance manager

    - #### createWrapper

          public Wrapper createWrapper()

      Description copied from interface: `Context`
      Factory method to create and return a new Wrapper instance, of the Java implementation class appropriate for this Context implementation. The constructor of the instantiated Wrapper will have been called, but no properties will have been set.
      Specified by:
        `createWrapper` in interface `Context`
      Returns:
        a newly created wrapper instance that is used to wrap a Servlet

    - #### findStatusPage

          public java.lang.String findStatusPage​(int status)

      Specified by:
        `findStatusPage` in interface `Context`
      Parameters:
        `status` - HTTP status code to look up
      Returns:
        the context-relative URI of the error page for the specified HTTP status code, if any; otherwise return `null`.

    - #### findStatusPages

          public int[] findStatusPages()

      Specified by:
        `findStatusPages` in interface `Context`
      Returns:
        the set of HTTP status codes for which error pages have been specified. If none are specified, a zero-length array is returned.

    - #### fireRequestInitEvent

          public boolean fireRequestInitEvent​(ServletRequest request)

      Description copied from interface: `Context`
      Notify all `ServletRequestListener`s that a request has started.
      Specified by:
        `fireRequestInitEvent` in interface `Context`
      Parameters:
        `request` - The request object that will be passed to the listener
      Returns:
        `true` if the listeners fire successfully, else `false`

    - #### fireRequestDestroyEvent

          public boolean fireRequestDestroyEvent​(ServletRequest request)

      Description copied from interface: `Context`
      Notify all `ServletRequestListener`s that a request has ended.
      Specified by:
        `fireRequestDestroyEvent` in interface `Context`
      Parameters:
        `request` - The request object that will be passed to the listener
      Returns:
        `true` if the listeners fire successfully, else `false`

    - #### reload

          public void reload()

      Description copied from interface: `Context`
      Reload this web application, if reloading is supported.
      Specified by:
        `reload` in interface `Context`

    - #### getRealPath

          public java.lang.String getRealPath​(java.lang.String path)

      Specified by:
        `getRealPath` in interface `Context`
      Parameters:
        `path` - The path to the desired resource
      Returns:
        the real path for a given virtual path, if possible; otherwise return `null`.

    - #### getEffectiveMajorVersion

          public int getEffectiveMajorVersion()

      Specified by:
        `getEffectiveMajorVersion` in interface `Context`
      Returns:
        the effective major version of the Servlet spec used by this context.

    - #### setEffectiveMajorVersion

          public void setEffectiveMajorVersion​(int major)

      Description copied from interface: `Context`
      Set the effective major version of the Servlet spec used by this context.
      Specified by:
        `setEffectiveMajorVersion` in interface `Context`
      Parameters:
        `major` - Set the version number

    - #### getEffectiveMinorVersion

          public int getEffectiveMinorVersion()

      Specified by:
        `getEffectiveMinorVersion` in interface `Context`
      Returns:
        the effective minor version of the Servlet spec used by this context.

    - #### setEffectiveMinorVersion

          public void setEffectiveMinorVersion​(int minor)

      Description copied from interface: `Context`
      Set the effective minor version of the Servlet spec used by this context.
      Specified by:
        `setEffectiveMinorVersion` in interface `Context`
      Parameters:
        `minor` - Set the version number

    - #### getJspConfigDescriptor

          public JspConfigDescriptor getJspConfigDescriptor()

      Specified by:
        `getJspConfigDescriptor` in interface `Context`
      Returns:
        the JSP configuration for this context. Will be null if there is no JSP configuration.

    - #### setJspConfigDescriptor

          public void setJspConfigDescriptor​(JspConfigDescriptor descriptor)

      Description copied from interface: `Context`
      Set the JspConfigDescriptor for this context. A null value indicates there is not JSP configuration.
      Specified by:
        `setJspConfigDescriptor` in interface `Context`
      Parameters:
        `descriptor` - the new JSP configuration

    - #### addServletContainerInitializer

          public void addServletContainerInitializer​(ServletContainerInitializer sci,
                                                     java.util.Set<java.lang.Class<?>> classes)

      Description copied from interface: `Context`
      Add a ServletContainerInitializer instance to this web application.
      Specified by:
        `addServletContainerInitializer` in interface `Context`
      Parameters:
        `sci` - The instance to add
        `classes` - The classes in which the initializer expressed an interest

    - #### getPaused

          public boolean getPaused()

      Description copied from interface: `Context`
      Is this Context paused whilst it is reloaded?
      Specified by:
        `getPaused` in interface `Context`
      Returns:
        `true` if the context has been paused

    - #### isServlet22

          public boolean isServlet22()

      Description copied from interface: `Context`
      Is this context using version 2.2 of the Servlet spec?
      Specified by:
        `isServlet22` in interface `Context`
      Returns:
        `true` for a legacy Servlet 2.2 webapp

    - #### addServletSecurity

          public java.util.Set<java.lang.String> addServletSecurity​(ServletRegistration.Dynamic registration,
                                                                    ServletSecurityElement servletSecurityElement)

      Description copied from interface: `Context`
      Notification that Servlet security has been dynamically set in a `ServletRegistration.Dynamic`
      Specified by:
        `addServletSecurity` in interface `Context`
      Parameters:
        `registration` - Servlet security was modified for
        `servletSecurityElement` - new security constraints for this Servlet
      Returns:
        urls currently mapped to this registration that are already present in web.xml

    - #### setResourceOnlyServlets

          public void setResourceOnlyServlets​(java.lang.String resourceOnlyServlets)

      Description copied from interface: `Context`
      Sets the (comma separated) list of Servlets that expect a resource to be present. Used to ensure that welcome files associated with Servlets that expect a resource to be present are not mapped when there is no resource.
      Specified by:
        `setResourceOnlyServlets` in interface `Context`
      Parameters:
        `resourceOnlyServlets` - The Servlet names comma separated list

    - #### getResourceOnlyServlets

          public java.lang.String getResourceOnlyServlets()

      Description copied from interface: `Context`
      Obtains the list of Servlets that expect a resource to be present.
      Specified by:
        `getResourceOnlyServlets` in interface `Context`
      Returns:
        A comma separated list of Servlet names as used in web.xml

    - #### isResourceOnlyServlet

          public boolean isResourceOnlyServlet​(java.lang.String servletName)

      Description copied from interface: `Context`
      Checks the named Servlet to see if it expects a resource to be present.
      Specified by:
        `isResourceOnlyServlet` in interface `Context`
      Parameters:
        `servletName` - Name of the Servlet (as per web.xml) to check
      Returns:
        `true` if the Servlet expects a resource, otherwise `false`

    - #### getBaseName

          public java.lang.String getBaseName()

      Specified by:
        `getBaseName` in interface `Context`
      Returns:
        the base name to use for WARs, directories or context.xml files for this context.

    - #### setFireRequestListenersOnForwards

          public void setFireRequestListenersOnForwards​(boolean enable)

      Description copied from interface: `Context`
      Configure whether or not requests listeners will be fired on forwards for this Context.
      Specified by:
        `setFireRequestListenersOnForwards` in interface `Context`
      Parameters:
        `enable` - `true` to fire request listeners when forwarding

    - #### getFireRequestListenersOnForwards

          public boolean getFireRequestListenersOnForwards()

      Specified by:
        `getFireRequestListenersOnForwards` in interface `Context`
      Returns:
        whether or not requests listeners will be fired on forwards for this Context.

    - #### setPreemptiveAuthentication

          public void setPreemptiveAuthentication​(boolean enable)

      Description copied from interface: `Context`
      Configures if a user presents authentication credentials, whether the context will process them when the request is for a non-protected resource.
      Specified by:
        `setPreemptiveAuthentication` in interface `Context`
      Parameters:
        `enable` - `true` to perform authentication even outside security constraints

    - #### getPreemptiveAuthentication

          public boolean getPreemptiveAuthentication()

      Specified by:
        `getPreemptiveAuthentication` in interface `Context`
      Returns:
        if a user presents authentication credentials, will the context will process them when the request is for a non-protected resource.

    - #### setSendRedirectBody

          public void setSendRedirectBody​(boolean enable)

      Description copied from interface: `Context`
      Configures if a response body is included when a redirect response is sent to the client.
      Specified by:
        `setSendRedirectBody` in interface `Context`
      Parameters:
        `enable` - `true` to send a response body for redirects

    - #### getSendRedirectBody

          public boolean getSendRedirectBody()

      Specified by:
        `getSendRedirectBody` in interface `Context`
      Returns:
        if the context is configured to include a response body as part of a redirect response.

    - #### addValve

          public void addValve​(Valve valve)

    - #### getCatalinaBase

          public java.io.File getCatalinaBase()

      Description copied from interface: `Container`
      Obtain the location of CATALINA_BASE.
      Specified by:
        `getCatalinaBase` in interface `Container`
      Returns:
        The location of CATALINA_BASE.

    - #### getCatalinaHome

          public java.io.File getCatalinaHome()

      Description copied from interface: `Container`
      Obtain the location of CATALINA_HOME.
      Specified by:
        `getCatalinaHome` in interface `Container`
      Returns:
        The location of CATALINA_HOME.

    - #### setAddWebinfClassesResources

          public void setAddWebinfClassesResources​(boolean addWebinfClassesResources)

      Description copied from interface: `Context`
      Sets the flag that indicates if /WEB-INF/classes should be treated like an exploded JAR and JAR resources made available as if they were in a JAR.
      Specified by:
        `setAddWebinfClassesResources` in interface `Context`
      Parameters:
        `addWebinfClassesResources` - The new value for the flag

    - #### getAddWebinfClassesResources

          public boolean getAddWebinfClassesResources()

      Specified by:
        `getAddWebinfClassesResources` in interface `Context`
      Returns:
        the flag that indicates if /WEB-INF/classes should be treated like an exploded JAR and JAR resources made available as if they were in a JAR.

    - #### addPostConstructMethod

          public void addPostConstructMethod​(java.lang.String clazz,
                                             java.lang.String method)

      Description copied from interface: `Context`
      Add a post construct method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
      Specified by:
        `addPostConstructMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name
        `method` - Post construct method name

    - #### addPreDestroyMethod

          public void addPreDestroyMethod​(java.lang.String clazz,
                                          java.lang.String method)

      Description copied from interface: `Context`
      Add a pre destroy method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
      Specified by:
        `addPreDestroyMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name
        `method` - Post construct method name

    - #### removePostConstructMethod

          public void removePostConstructMethod​(java.lang.String clazz)

      Description copied from interface: `Context`
      Removes the post construct method definition for the given class, if it exists; otherwise, no action is taken.
      Specified by:
        `removePostConstructMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name

    - #### removePreDestroyMethod

          public void removePreDestroyMethod​(java.lang.String clazz)

      Description copied from interface: `Context`
      Removes the pre destroy method definition for the given class, if it exists; otherwise, no action is taken.
      Specified by:
        `removePreDestroyMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name

    - #### findPostConstructMethod

          public java.lang.String findPostConstructMethod​(java.lang.String clazz)

      Description copied from interface: `Context`
      Returns the method name that is specified as post construct method for the given class, if it exists; otherwise `NULL` will be returned.
      Specified by:
        `findPostConstructMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name
      Returns:
        the method name that is specified as post construct method for the given class, if it exists; otherwise `NULL` will be returned.

    - #### findPreDestroyMethod

          public java.lang.String findPreDestroyMethod​(java.lang.String clazz)

      Description copied from interface: `Context`
      Returns the method name that is specified as pre destroy method for the given class, if it exists; otherwise `NULL` will be returned.
      Specified by:
        `findPreDestroyMethod` in interface `Context`
      Parameters:
        `clazz` - Fully qualified class name
      Returns:
        the method name that is specified as pre destroy method for the given class, if it exists; otherwise `NULL` will be returned.

    - #### findPostConstructMethods

          public java.util.Map<java.lang.String,​java.lang.String> findPostConstructMethods()

      Description copied from interface: `Context`
      Returns a map with keys - fully qualified class names of the classes that have post construct methods and the values are the corresponding method names. If there are no such classes an empty map will be returned.
      Specified by:
        `findPostConstructMethods` in interface `Context`
      Returns:
        a map with keys - fully qualified class names of the classes that have post construct methods and the values are the corresponding method names.

    - #### findPreDestroyMethods

          public java.util.Map<java.lang.String,​java.lang.String> findPreDestroyMethods()

      Description copied from interface: `Context`
      Returns a map with keys - fully qualified class names of the classes that have pre destroy methods and the values are the corresponding method names. If there are no such classes an empty map will be returned.
      Specified by:
        `findPreDestroyMethods` in interface `Context`
      Returns:
        a map with keys - fully qualified class names of the classes that have pre destroy methods and the values are the corresponding method names.

    - #### getInstanceManager

          public InstanceManager getInstanceManager()

      Specified by:
        `getInstanceManager` in interface `Context`
      Returns:
        the instance manager associated with this context.

    - #### setInstanceManager

          public void setInstanceManager​(InstanceManager instanceManager)

      Description copied from interface: `Context`
      Set the instance manager associated with this context.
      Specified by:
        `setInstanceManager` in interface `Context`
      Parameters:
        `instanceManager` - the new instance manager instance

    - #### setContainerSciFilter

          public void setContainerSciFilter​(java.lang.String containerSciFilter)

      Description copied from interface: `Context`
      Sets the regular expression that specifies which container provided SCIs should be filtered out and not used for this context. Matching uses `Matcher.find()` so the regular expression only has to match a sub-string of the fully qualified class name of the container provided SCI for it to be filtered out.
      Specified by:
        `setContainerSciFilter` in interface `Context`
      Parameters:
        `containerSciFilter` - The regular expression against which the fully qualified class name of each container provided SCI should be checked

    - #### getContainerSciFilter

          public java.lang.String getContainerSciFilter()

      Description copied from interface: `Context`
      Obtains the regular expression that specifies which container provided SCIs should be filtered out and not used for this context. Matching uses `Matcher.find()` so the regular expression only has to match a sub-string of the fully qualified class name of the container provided SCI for it to be filtered out.
      Specified by:
        `getContainerSciFilter` in interface `Context`
      Returns:
        The regular expression against which the fully qualified class name of each container provided SCI will be checked

    - #### getThreadBindingListener

          public ThreadBindingListener getThreadBindingListener()

      Specified by:
        `getThreadBindingListener` in interface `Context`
      Returns:
        the associated ThreadBindingListener.

    - #### setThreadBindingListener

          public void setThreadBindingListener​(ThreadBindingListener threadBindingListener)

      Description copied from interface: `Context`
      Get the associated ThreadBindingListener.
      Specified by:
        `setThreadBindingListener` in interface `Context`
      Parameters:
        `threadBindingListener` - Set the listener that will receive notifications when entering and exiting the application scope

    - #### bind

          public java.lang.ClassLoader bind​(boolean usePrivilegedAction,
                                            java.lang.ClassLoader originalClassLoader)

      Description copied from interface: `ContextBind`
      Change the current thread context class loader to the web application class loader. If no web application class loader is defined, or if the current thread is already using the web application class loader then no change will be made. If the class loader is changed and a `ThreadBindingListener` is configured then `ThreadBindingListener.bind()` will be called after the change has been made.
      Specified by:
        `bind` in interface `ContextBind`
      Parameters:
        `usePrivilegedAction` - Should a `PrivilegedAction` be used when obtaining the current thread context class loader and setting the new one?
        `originalClassLoader` - The current class loader if known to save this method having to look it up
      Returns:
        If the class loader has been changed by the method it will return the thread context class loader in use when the method was called. If no change was made then this method returns null.

    - #### unbind

          public void unbind​(boolean usePrivilegedAction,
                             java.lang.ClassLoader originalClassLoader)

      Description copied from interface: `ContextBind`
      Restore the current thread context class loader to the original class loader in used before `ContextBind.bind(boolean, ClassLoader)` was called. If no original class loader is passed to this method then no change will be made. If the class loader is changed and a `ThreadBindingListener` is configured then `ThreadBindingListener.unbind()` will be called before the change is made.
      Specified by:
        `unbind` in interface `ContextBind`
      Parameters:
        `usePrivilegedAction` - Should a `PrivilegedAction` be used when setting the current thread context class loader?
        `originalClassLoader` - The class loader to restore as the thread context class loader

    - #### getNamingToken

          public java.lang.Object getNamingToken()

      Specified by:
        `getNamingToken` in interface `Context`
      Returns:
        the token necessary for operations on the associated JNDI naming context.

    - #### setCookieProcessor

          public void setCookieProcessor​(CookieProcessor cookieProcessor)

      Description copied from interface: `Context`
      Sets the `CookieProcessor` that will be used to process cookies for this Context.
      Specified by:
        `setCookieProcessor` in interface `Context`
      Parameters:
        `cookieProcessor` - The new cookie processor

    - #### getCookieProcessor

          public CookieProcessor getCookieProcessor()

      Specified by:
        `getCookieProcessor` in interface `Context`
      Returns:
        the `CookieProcessor` that will be used to process cookies for this Context.

    - #### setValidateClientProvidedNewSessionId

          public void setValidateClientProvidedNewSessionId​(boolean validateClientProvidedNewSessionId)

      Description copied from interface: `Context`
      When a client provides the ID for a new session, should that ID be validated? The only use case for using a client provided session ID is to have a common session ID across multiple web applications. Therefore, any client provided session ID should already exist in another web application. If this check is enabled, the client provided session ID will only be used if the session ID exists in at least one other web application for the current host. Note that the following additional tests are always applied, irrespective of this setting:
      - The session ID is provided by a cookie
      - The session cookie has a path of `/`
      Specified by:
        `setValidateClientProvidedNewSessionId` in interface `Context`
      Parameters:
        `validateClientProvidedNewSessionId` - `true` if validation should be applied

    - #### getValidateClientProvidedNewSessionId

          public boolean getValidateClientProvidedNewSessionId()

      Description copied from interface: `Context`
      Will client provided session IDs be validated (see `Context.setValidateClientProvidedNewSessionId(boolean)`) before use?
      Specified by:
        `getValidateClientProvidedNewSessionId` in interface `Context`
      Returns:
        `true` if validation will be applied. Otherwise, `false`

    - #### setMapperContextRootRedirectEnabled

          public void setMapperContextRootRedirectEnabled​(boolean mapperContextRootRedirectEnabled)

      Description copied from interface: `Context`
      If enabled, requests for a web application context root will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the context path is valid.
      Specified by:
        `setMapperContextRootRedirectEnabled` in interface `Context`
      Parameters:
        `mapperContextRootRedirectEnabled` - Should the redirects be enabled?

    - #### getMapperContextRootRedirectEnabled

          public boolean getMapperContextRootRedirectEnabled()

      Description copied from interface: `Context`
      Determines if requests for a web application context root will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the context path is valid.
      Specified by:
        `getMapperContextRootRedirectEnabled` in interface `Context`
      Returns:
        `true` if the Mapper level redirect is enabled for this Context.

    - #### setMapperDirectoryRedirectEnabled

          public void setMapperDirectoryRedirectEnabled​(boolean mapperDirectoryRedirectEnabled)

      Description copied from interface: `Context`
      If enabled, requests for a directory will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the directory is valid.
      Specified by:
        `setMapperDirectoryRedirectEnabled` in interface `Context`
      Parameters:
        `mapperDirectoryRedirectEnabled` - Should the redirects be enabled?

    - #### getMapperDirectoryRedirectEnabled

          public boolean getMapperDirectoryRedirectEnabled()

      Description copied from interface: `Context`
      Determines if requests for a directory will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the directory is valid.
      Specified by:
        `getMapperDirectoryRedirectEnabled` in interface `Context`
      Returns:
        `true` if the Mapper level redirect is enabled for this Context.

    - #### setUseRelativeRedirects

          public void setUseRelativeRedirects​(boolean useRelativeRedirects)

      Description copied from interface: `Context`
      Controls whether HTTP 1.1 and later location headers generated by a call to `HttpServletResponse.sendRedirect(String)` will use relative or absolute redirects.

      Relative redirects are more efficient but may not work with reverse proxies that change the context path. It should be noted that it is not recommended to use a reverse proxy to change the context path because of the multiple issues it creates.

      Absolute redirects should work with reverse proxies that change the context path but may cause issues with the `RemoteIpFilter` if the filter is changing the scheme and/or port.

      Specified by:
        `setUseRelativeRedirects` in interface `Context`
      Parameters:
        `useRelativeRedirects` - `true` to use relative redirects and `false` to use absolute redirects

    - #### getUseRelativeRedirects

          public boolean getUseRelativeRedirects()

      Description copied from interface: `Context`
      Will HTTP 1.1 and later location headers generated by a call to `HttpServletResponse.sendRedirect(String)` use relative or absolute redirects.
      Specified by:
        `getUseRelativeRedirects` in interface `Context`
      Returns:
        `true` if relative redirects will be used `false` if absolute redirects are used.
      See Also:
        `Context.setUseRelativeRedirects(boolean)`

    - #### setDispatchersUseEncodedPaths

          public void setDispatchersUseEncodedPaths​(boolean dispatchersUseEncodedPaths)

      Description copied from interface: `Context`
      Are paths used in calls to obtain a request dispatcher expected to be encoded? This affects both how Tomcat handles calls to obtain a request dispatcher as well as how Tomcat generates paths used to obtain request dispatchers internally.
      Specified by:
        `setDispatchersUseEncodedPaths` in interface `Context`
      Parameters:
        `dispatchersUseEncodedPaths` - `true` to use encoded paths, otherwise `false`

    - #### getDispatchersUseEncodedPaths

          public boolean getDispatchersUseEncodedPaths()

      Description copied from interface: `Context`
      Are paths used in calls to obtain a request dispatcher expected to be encoded? This applies to both how Tomcat handles calls to obtain a request dispatcher as well as how Tomcat generates paths used to obtain request dispatchers internally.
      Specified by:
        `getDispatchersUseEncodedPaths` in interface `Context`
      Returns:
        `true` if encoded paths will be used, otherwise `false`

    - #### setRequestCharacterEncoding

          public void setRequestCharacterEncoding​(java.lang.String encoding)

      Description copied from interface: `Context`
      Set the default request body encoding for this web application.
      Specified by:
        `setRequestCharacterEncoding` in interface `Context`
      Parameters:
        `encoding` - The default encoding

    - #### getRequestCharacterEncoding

          public java.lang.String getRequestCharacterEncoding()

      Description copied from interface: `Context`
      Get the default request body encoding for this web application.
      Specified by:
        `getRequestCharacterEncoding` in interface `Context`
      Returns:
        The default request body encoding

    - #### setResponseCharacterEncoding

          public void setResponseCharacterEncoding​(java.lang.String encoding)

      Description copied from interface: `Context`
      Set the default response body encoding for this web application.
      Specified by:
        `setResponseCharacterEncoding` in interface `Context`
      Parameters:
        `encoding` - The default encoding

    - #### getResponseCharacterEncoding

          public java.lang.String getResponseCharacterEncoding()

      Description copied from interface: `Context`
      Get the default response body encoding for this web application.
      Specified by:
        `getResponseCharacterEncoding` in interface `Context`
      Returns:
        The default response body encoding

    - #### setAllowMultipleLeadingForwardSlashInPath

          public void setAllowMultipleLeadingForwardSlashInPath​(boolean allowMultipleLeadingForwardSlashInPath)

      Description copied from interface: `Context`
      Configure if, when returning a context path from `HttpServletRequest.getContextPath()`, the return value is allowed to contain multiple leading '/' characters.
      Specified by:
        `setAllowMultipleLeadingForwardSlashInPath` in interface `Context`
      Parameters:
        `allowMultipleLeadingForwardSlashInPath` - The new value for the flag

    - #### getAllowMultipleLeadingForwardSlashInPath

          public boolean getAllowMultipleLeadingForwardSlashInPath()

      Description copied from interface: `Context`
      When returning a context path from `HttpServletRequest.getContextPath()`, is it allowed to contain multiple leading '/' characters?
      Specified by:
        `getAllowMultipleLeadingForwardSlashInPath` in interface `Context`
      Returns:
        `true` if multiple leading '/' characters are allowed, otherwise `false`

    - #### incrementInProgressAsyncCount

          public void incrementInProgressAsyncCount()

      Specified by:
        `incrementInProgressAsyncCount` in interface `Context`

    - #### decrementInProgressAsyncCount

          public void decrementInProgressAsyncCount()

      Specified by:
        `decrementInProgressAsyncCount` in interface `Context`

    - #### setCreateUploadTargets

          public void setCreateUploadTargets​(boolean createUploadTargets)

      Description copied from interface: `Context`
      Configure whether Tomcat will attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it.
      Specified by:
        `setCreateUploadTargets` in interface `Context`
      Parameters:
        `createUploadTargets` - `true` if Tomcat should attempt to create the upload target, otherwise `false`

    - #### getCreateUploadTargets

          public boolean getCreateUploadTargets()

      Description copied from interface: `Context`
      Will Tomcat attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it?
      Specified by:
        `getCreateUploadTargets` in interface `Context`
      Returns:
        `true` if Tomcat will attempt to create an upload target otherwise `false`

    - #### getParallelAnnotationScanning

          public boolean getParallelAnnotationScanning()

      Specified by:
        `getParallelAnnotationScanning` in interface `Context`
      Returns:
        the value of the parallel annotation scanning flag. If true, it will dispatch scanning to the utility executor.

    - #### setParallelAnnotationScanning

          public void setParallelAnnotationScanning​(boolean parallelAnnotationScanning)

      Description copied from interface: `Context`
      Set the parallel annotation scanning value.
      Specified by:
        `setParallelAnnotationScanning` in interface `Context`
      Parameters:
        `parallelAnnotationScanning` - new parallel annotation scanning flag

    - #### getUseBloomFilterForArchives

          public boolean getUseBloomFilterForArchives()

      Specified by:
        `getUseBloomFilterForArchives` in interface `Context`
      Returns:
        `true` if the resources archive lookup will use a bloom filter.

    - #### setUseBloomFilterForArchives

          public void setUseBloomFilterForArchives​(boolean useBloomFilterForArchives)

      Description copied from interface: `Context`
      Set bloom filter flag value.
      Specified by:
        `setUseBloomFilterForArchives` in interface `Context`
      Parameters:
        `useBloomFilterForArchives` - The new fast class path scan flag