org.apache.catalina.core
Class StandardContext

java.lang.Object
  extended byorg.apache.catalina.core.ContainerBase
      extended byorg.apache.catalina.core.StandardContext
All Implemented Interfaces:
Container, Context, Lifecycle, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, Pipeline, java.io.Serializable

public class StandardContext
extends ContainerBase
implements Context, java.io.Serializable, javax.management.NotificationEmitter

Standard implementation of the Context interface. Each child container must be a Wrapper implementation to process the requests directed to a particular servlet.

Version:
$Revision: 522870 $ $Date: 2007-03-27 05:37:32 -0600 (Tue, 27 Mar 2007) $
Author:
Craig R. McClanahan, Remy Maucherat
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.apache.catalina.core.ContainerBase
ContainerBase.ContainerBackgroundProcessor, ContainerBase.PrivilegedAddChild
 
Field Summary
protected  boolean allowLinking
          Allow linking.
protected  int cacheMaxSize
          Cache max size in KB.
protected  int cacheTTL
          Cache TTL in ms.
protected  boolean caseSensitive
          Case sensitivity.
protected  ApplicationContext context
          The ServletContext implementation associated with this Context.
protected static URLEncoder urlEncoder
          Array containing the safe characters set.
 
Fields inherited from class org.apache.catalina.core.ContainerBase
backgroundProcessorDelay, children, cluster, controller, domain, initialized, lifecycle, listeners, loader, logger, logName, manager, mserver, name, oname, parent, parentClassLoader, pipeline, realm, resources, sm, started, suffix, support, type
 
Fields inherited from interface org.apache.catalina.Context
RELOAD_EVENT
 
Fields inherited from interface org.apache.catalina.Container
ADD_CHILD_EVENT, ADD_MAPPER_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_MAPPER_EVENT, REMOVE_VALVE_EVENT
 
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, DESTROY_EVENT, INIT_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
 
Constructor Summary
StandardContext()
          Create a new StandardContext component with the default basic Valve.
 
Method Summary
 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 child Container, only if the proposed child is an implementation of Wrapper.
 void addConstraint(SecurityConstraint constraint)
          Add a security constraint to the set for this web application.
 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 addInstanceListener(java.lang.String listener)
          Add the classname of an InstanceListener to be added to each Wrapper appended to this Context.
 void addJspMapping(java.lang.String pattern)
          Add the given URL pattern as a jsp-property-group.
 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 addMessageDestination(MessageDestination md)
          Add a message destination for this web application.
 void addMessageDestinationRef(MessageDestinationRef mdr)
          Add a message destination reference for this web application.
 void addMimeMapping(java.lang.String extension, java.lang.String mimeType)
          Add a new MIME mapping, replacing any existing mapping for the specified extension.
 void addNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object object)
           
 void addParameter(java.lang.String name, java.lang.String value)
          Add a new context initialization parameter.
 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 addServletMapping(java.lang.String pattern, java.lang.String name)
          Add a new servlet mapping, replacing any existing mapping for the specified pattern.
 void addServletMapping(java.lang.String pattern, java.lang.String name, boolean jspWildCard)
          Add a new servlet mapping, replacing any existing mapping for the specified pattern.
 void addTaglib(java.lang.String uri, java.lang.String location)
          Add a JSP tag library for the specified URI.
 void addWatchedResource(java.lang.String name)
          Add a new watched resource to the set recognized by this Context.
 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.
protected  java.lang.String adjustURLPattern(java.lang.String urlPattern)
          Adjust the URL pattern to begin with a leading slash, if appropriate (i.e. we are running a servlet 2.2 application).
 void create()
           
 javax.management.ObjectName createObjectName(java.lang.String hostDomain, javax.management.ObjectName parentName)
           
 Wrapper createWrapper()
          Factory method to create and return a new Wrapper instance, of the Java implementation class appropriate for this Context implementation.
 void destroy()
          Destroy needs to clean up the context completely.
protected  java.io.File engineBase()
          Return a File object representing the base directory for the entire servlet container (i.e. the Engine container if present).
 boolean filterStart()
          Configure and initialize the set of filters for this Context.
 boolean filterStop()
          Finalize and release the set of filters for this Context.
 java.lang.String[] findApplicationListeners()
          Return the set of application listener class names configured for this application.
 ApplicationParameter[] findApplicationParameters()
          Return the set of application parameters for this application.
 SecurityConstraint[] findConstraints()
          Return the security constraints for this web application.
 ErrorPage findErrorPage(int errorCode)
          Return the error page entry for the specified HTTP error code, if any; otherwise return null.
 ErrorPage findErrorPage(java.lang.String exceptionType)
          Return the error page entry for the specified Java exception type, if any; otherwise return null.
 ErrorPage[] findErrorPages()
          Return the set of defined error pages for all specified error codes and exception types.
 javax.servlet.FilterConfig findFilterConfig(java.lang.String name)
          Find and return the initialized FilterConfig for the specified filter name, if any; otherwise return null.
 FilterDef findFilterDef(java.lang.String filterName)
          Return the filter definition for the specified filter name, if any; otherwise return null.
 FilterDef[] findFilterDefs()
          Return the set of defined filters for this Context.
 FilterMap[] findFilterMaps()
          Return the set of filter mappings for this Context.
 java.lang.String[] findInstanceListeners()
          Return the set of InstanceListener classes that will be added to newly created Wrappers automatically.
 Context findMappingObject()
          FIXME: Fooling introspection ...
 MessageDestination findMessageDestination(java.lang.String name)
          Return the message destination with the specified name, if any; otherwise, return null.
 MessageDestinationRef findMessageDestinationRef(java.lang.String name)
          Return the message destination ref with the specified name, if any; otherwise, return null.
 MessageDestinationRef[] findMessageDestinationRefs()
          Return the set of defined message destination refs for this web application.
 MessageDestination[] findMessageDestinations()
          Return the set of defined message destinations for this web application.
 java.lang.String findMimeMapping(java.lang.String extension)
          Return the MIME type to which the specified extension is mapped, if any; otherwise return null.
 java.lang.String[] findMimeMappings()
          Return the extensions for which MIME mappings are defined.
 java.lang.String findParameter(java.lang.String name)
          Return the value for the specified context initialization parameter name, if any; otherwise return null.
 java.lang.String[] findParameters()
          Return the names of all defined context initialization parameters for this Context.
 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)
          Return true if the specified security role is defined for this application; otherwise return false.
 java.lang.String[] findSecurityRoles()
          Return the security roles defined for this application.
 java.lang.String findServletMapping(java.lang.String pattern)
          Return the servlet name mapped by the specified pattern (if any); otherwise return null.
 java.lang.String[] findServletMappings()
          Return the patterns of all defined servlet mappings for this Context.
 javax.naming.directory.DirContext findStaticResources()
          Return the naming resources associated with this web application.
 java.lang.String findStatusPage(int status)
          Return the context-relative URI of the error page for the specified HTTP status code, if any; otherwise return null.
 int[] findStatusPages()
          Return the set of HTTP status codes for which error pages have been specified.
 java.lang.String findTaglib(java.lang.String uri)
          Return the tag library descriptor location for the specified taglib URI, if any; otherwise, return null.
 java.lang.String[] findTaglibs()
          Return the URIs of all tag libraries for which a tag library descriptor location has been specified.
 java.lang.String[] findWatchedResources()
          Return the set of watched resources for this Context.
 boolean findWelcomeFile(java.lang.String name)
          Return true if the specified welcome file is defined for this Context; otherwise return false.
 java.lang.String[] findWelcomeFiles()
          Return the set of welcome files defined for this Context.
 java.lang.String[] findWrapperLifecycles()
          Return the set of LifecycleListener classes that will be added to newly created Wrappers automatically.
 java.lang.String[] findWrapperListeners()
          Return the set of ContainerListener classes that will be added to newly created Wrappers automatically.
 java.lang.String getAltDDName()
          Return the alternate Deployment Descriptor name.
 boolean getAntiJARLocking()
          Return the antiJARLocking flag for this Context.
 boolean getAntiResourceLocking()
          Return the antiResourceLocking flag for this Context.
 java.lang.Object[] getApplicationEventListeners()
          Return the set of initialized application event listener objects, in the order they were specified in the web application deployment descriptor, for this application.
 java.lang.Object[] getApplicationLifecycleListeners()
          Return the set of initialized application lifecycle listener objects, in the order they were specified in the web application deployment descriptor, for this application.
 boolean getAvailable()
          Return the application available flag for this Context.
protected  java.lang.String getBasePath()
          Get base path.
 int getCacheMaxSize()
          Return the maximum size of the cache in KB.
 int getCacheTTL()
          Get cache TTL.
 CharsetMapper getCharsetMapper()
          Return the Locale to character set mapper for this Context.
 java.lang.String getCharsetMapperClass()
          Return the Locale to character set mapper class for this Context.
 java.lang.String getCompilerClasspath()
          Return the compiler classpath.
 java.io.File getConfigBase()
          Get config base.
 java.lang.String getConfigFile()
          Return the path to a file to save this Context information.
 boolean getConfigured()
          Return the "correctly configured" flag for this Context.
 boolean getCookies()
          Return the "use cookies for session ids" flag.
 boolean getCrossContext()
          Return the "allow crossing servlet contexts" flag.
protected  java.lang.String getDefaultConfigFile()
          Given a context path, get the config file name.
 java.lang.String getDefaultContextXml()
           
 java.lang.String getDefaultWebXml()
           
 boolean getDelegate()
          Return the "follow standard delegation model" flag used to configure our ClassLoader.
 java.lang.String getDeploymentDescriptor()
          JSR77 deploymentDescriptor attribute
 java.lang.String getDisplayName()
          Return the display name of this web application.
 boolean getDistributable()
          Return the distributable flag for this web application.
 java.lang.String getDocBase()
          Return the document root for this Context.
 java.lang.String getEncodedPath()
          Return the URL encoded context path, using UTF-8.
 java.lang.String getEngineName()
           
 java.lang.String getHostname()
           
 java.lang.String getInfo()
          Return descriptive information about this Container implementation and the corresponding version number, in the format <description>/<version>.
 java.lang.String getJ2EEApplication()
           
 java.lang.String getJ2EEServer()
           
 java.lang.String[] getJavaVMs()
           
 LoginConfig getLoginConfig()
          Return the login configuration descriptor for this web application.
 Mapper getMapper()
          Get the mapper associated with the context.
 NamingResources getNamingResources()
          Return the naming resources associated with this web application.
 javax.management.MBeanNotificationInfo[] getNotificationInfo()
           
 java.lang.String getOriginalDocBase()
          Return the original document root for this Context.
 boolean getOverride()
          Return the DefaultContext override flag for this web application.
 java.lang.ClassLoader getParentClassLoader()
          Return the parent class loader (if any) for this web application.
 javax.management.ObjectName getParentName()
           
 java.lang.String getPath()
          Return the context path for this Context.
 boolean getPaused()
          Return the request processing paused flag for this Context.
 boolean getPrivileged()
          Return the privileged flag for this web application.
 long getProcessingTime()
          Gets the cumulative processing times of all servlets in this StandardContext.
 boolean getProcessTlds()
          Returns the processTlds attribute value.
 java.lang.String getPublicId()
          Return the public identifier of the deployment descriptor DTD that is currently being parsed.
 boolean getReloadable()
          Return the reloadable flag for this web application.
 java.lang.String getServer()
           
 javax.servlet.ServletContext getServletContext()
          Return the servlet context for which this Context is a facade.
 java.lang.String[] getServlets()
          JSR77 servlets attribute
 int getSessionTimeout()
          Return the default session timeout (in minutes) for this web application.
 long getStartTime()
          Gets the time this context was started.
 long getStartupTime()
          Gets the time (in milliseconds) it took to start this context.
 int getState()
           
 javax.naming.directory.DirContext getStaticResources()
          Return the naming resources associated with this web application.
 boolean getSwallowOutput()
          Return the value of the swallowOutput flag.
 boolean getTldNamespaceAware()
          Get the server.xml attribute's xmlNamespaceAware.
 long getTldScanTime()
           
 boolean getTldValidation()
          Get the server.xml attribute's webXmlValidation.
 long getUnloadDelay()
          Return the value of the unloadDelay flag.
 boolean getUnpackWAR()
          Unpack WAR flag accessor.
 java.lang.String[] getWelcomeFiles()
          Return the naming resources associated with this web application.
 java.lang.String getWorkDir()
          Return the work directory for this Context.
 java.lang.String getWorkPath()
          Get the absolute path to the work dir.
 java.lang.String getWrapperClass()
          Return the Java class name of the Wrapper implementation used for servlets registered in this Context.
 boolean getXmlNamespaceAware()
          Get the server.xml attribute's xmlNamespaceAware.
 boolean getXmlValidation()
          Get the server.xml attribute's xmlValidation.
 void init()
          Init method, part of the MBean lifecycle.
 boolean isAllowLinking()
          Is linking allowed.
 boolean isCachingAllowed()
          Is caching allowed ?
 boolean isCaseSensitive()
          Is case sensitive ?
 boolean isEventProvider()
           
 boolean isFilesystemBased()
          Returns true if the resources associated with this context are filesystem based.
 boolean isLazy()
           
 boolean isReplaceWelcomeFiles()
          Return the "replace welcome files" property.
 boolean isSaveConfig()
          Save config ?
protected  boolean isServlet22()
          Are we processing a version 2.2 deployment descriptor?
 boolean isStateManageable()
          Support for "stateManageable" JSR77
 boolean isStatisticsProvider()
           
 boolean isUseNaming()
          Returns true if the internal naming support is used.
 boolean listenerStart()
          Configure the set of instantiated application event listeners for this Context.
 boolean listenerStop()
          Send an application stop event to all interested listeners.
 void loadOnStartup(Container[] children)
          Load and initialize all servlets marked "load on startup" in the web application deployment descriptor.
 void preDeregister()
           
 javax.management.ObjectName preRegister(javax.management.MBeanServer server, javax.management.ObjectName name)
          There are 2 cases: 1.The context is created and registered by internal APIS 2.
protected  void processTlds()
          Processes TLDs.
 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)
          Add a child Container, only if the proposed child is an implementation of Wrapper.
 void removeConstraint(SecurityConstraint constraint)
          Remove the specified security constraint from this web application.
 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 removeInstanceListener(java.lang.String listener)
          Remove a class name from the set of InstanceListener classes that will be added to newly created Wrappers.
 void removeMessageDestination(java.lang.String name)
          Remove any message destination with the specified name.
 void removeMessageDestinationRef(java.lang.String name)
          Remove any message destination ref with the specified name.
 void removeMimeMapping(java.lang.String extension)
          Remove the MIME mapping for the specified extension, if it exists; otherwise, no action is taken.
 void removeNotificationListener(javax.management.NotificationListener listener)
          Remove a JMX-NotificationListener
 void removeNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object object)
           
 void removeParameter(java.lang.String name)
          Remove the context initialization parameter with the specified name, if it exists; otherwise, no action is taken.
 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 removeTaglib(java.lang.String uri)
          Remove the tag library location forthe specified tag library URI.
 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.
 boolean resourcesStart()
          Allocate resources, including proxy.
 boolean resourcesStop()
          Deallocate resources and destroy proxy.
 void setAllowLinking(boolean allowLinking)
          Set allow linking.
 void setAltDDName(java.lang.String altDDName)
          Set an alternate Deployment Descriptor name.
 void setAntiJARLocking(boolean antiJARLocking)
          Set the antiJARLocking feature for this Context.
 void setAntiResourceLocking(boolean antiResourceLocking)
          Set the antiResourceLocking feature for this Context.
 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 setAvailable(boolean available)
          Set the application available flag for this Context.
 void setCacheMaxSize(int cacheMaxSize)
          Set the maximum size of the cache in KB.
 void setCacheTTL(int cacheTTL)
          Set cache TTL.
 void setCachingAllowed(boolean cachingAllowed)
          Set caching allowed flag.
 void setCaseSensitive(boolean caseSensitive)
          Set case sensitivity.
 void setCharsetMapper(CharsetMapper mapper)
          Set the Locale to character set mapper for this Context.
 void setCharsetMapperClass(java.lang.String mapper)
          Set the Locale to character set mapper class for this Context.
 void setCompilerClasspath(java.lang.String compilerClasspath)
          Set the compiler classpath.
 void setConfigFile(java.lang.String configFile)
          Set the path to a file to save this Context information.
 void setConfigured(boolean configured)
          Set the "correctly configured" flag for this Context.
 void setCookies(boolean cookies)
          Set the "use cookies for session ids" flag.
 void setCrossContext(boolean crossContext)
          Set the "allow crossing servlet contexts" flag.
 void setDefaultContextXml(java.lang.String defaultContextXml)
          Set the location of the default context xml that will be used.
 void setDefaultWebXml(java.lang.String defaultWebXml)
          Set the location of the default web xml that will be used.
 void setDelegate(boolean delegate)
          Set the "follow standard delegation model" flag used to configure our ClassLoader.
 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 setEngineName(java.lang.String engineName)
           
 void setJ2EEApplication(java.lang.String j2EEApplication)
           
 void setJ2EEServer(java.lang.String j2EEServer)
           
 java.lang.String[] setJavaVMs(java.lang.String[] javaVMs)
           
 void setLazy(boolean lazy)
           
 void setLoader(Loader loader)
          Set the Loader with which this Context is associated.
 void setLoginConfig(LoginConfig config)
          Set the login configuration descriptor for this web application.
 void setName(java.lang.String name)
          Set a name string (suitable for use by humans) that describes this Container.
 void setNamingResources(NamingResources namingResources)
          Set the naming resources for this web application.
 void setOriginalDocBase(java.lang.String docBase)
          Set the original document root for this Context.
 void setOverride(boolean override)
          Set the DefaultContext override flag for this web application.
 void setPath(java.lang.String path)
          Set the context path for this Context.
 void setPrivileged(boolean privileged)
          Set the privileged flag for this web application.
 void setProcessTlds(boolean newProcessTlds)
          Sets the process TLDs attribute.
 void setPublicId(java.lang.String publicId)
          Set the public identifier of the deployment descriptor DTD that is currently being parsed.
 void setReloadable(boolean reloadable)
          Set the reloadable flag for this web application.
 void setReplaceWelcomeFiles(boolean replaceWelcomeFiles)
          Set the "replace welcome files" property.
 void setResources(javax.naming.directory.DirContext resources)
          Set the resources DirContext object with which this Container is associated.
 void setSaveConfig(boolean saveConfig)
          Set save config flag.
 java.lang.String setServer(java.lang.String server)
           
 void setSessionTimeout(int timeout)
          Set the default session timeout (in minutes) for this web application.
 void setStartupTime(long startupTime)
           
 void setSwallowOutput(boolean swallowOutput)
          Set the value of the swallowOutput flag.
 void setTldNamespaceAware(boolean tldNamespaceAware)
          Set the namespace aware feature of the XML parser used when parsing xml instances.
 void setTldScanTime(long tldScanTime)
           
 void setTldValidation(boolean tldValidation)
          Set the validation feature of the XML parser used when parsing tlds files.
 void setUnloadDelay(long unloadDelay)
          Set the value of the unloadDelay flag, which represents the amount of ms that the container will wait when unloading servlets.
 void setUnpackWAR(boolean unpackWAR)
          Unpack WAR flag mutator.
 void setUseNaming(boolean useNaming)
          Enables or disables naming.
 void setWorkDir(java.lang.String workDir)
          Set the work directory for this Context.
 void setWrapperClass(java.lang.String wrapperClassName)
          Set the Java class name of the Wrapper implementation used for servlets registered in this Context.
 void setXmlNamespaceAware(boolean webXmlNamespaceAware)
          Set the namespace aware feature of the XML parser used when parsing xml instances.
 void setXmlValidation(boolean webXmlValidation)
          Set the validation feature of the XML parser used when parsing xml instances.
 void start()
          Start this Context component.
 void startRecursive()
           
 void stop()
          Stop this Context component.
 java.lang.String toString()
          Return a String representation of this component.
 
Methods inherited from class org.apache.catalina.core.ContainerBase
addContainerListener, addLifecycleListener, addPropertyChangeListener, addValve, backgroundProcess, findChild, findChildren, findContainerListeners, findLifecycleListeners, fireContainerEvent, getBackgroundProcessorDelay, getBasic, getChildren, getCluster, getContainerSuffix, getDomain, getFirst, getJmxName, getJSR77Suffix, getLoader, getLogger, getManager, getMappingObject, getName, getObjectName, getParen