Apache Tomcat 7.0.0

org.apache.catalina.core
Class ApplicationContext

java.lang.Object
  extended by org.apache.catalina.core.ApplicationContext
All Implemented Interfaces:
javax.servlet.ServletContext
Direct Known Subclasses:
ReplicatedContext.ReplApplContext

public class ApplicationContext
extends Object
implements javax.servlet.ServletContext

Standard implementation of ServletContext that represents a web application's execution environment. An instance of this class is associated with each instance of StandardContext.

Version:
$Id: ApplicationContext.java 951925 2010-06-06 18:42:12Z markt $
Author:
Craig R. McClanahan, Remy Maucherat

Field Summary
protected  Map<String,Object> attributes
          The context attributes for this context.
protected static boolean GET_RESOURCE_REQUIRE_SLASH
           
protected static boolean STRICT_SERVLET_COMPLIANCE
           
 
Fields inherited from interface javax.servlet.ServletContext
ORDERED_LIBS, TEMPDIR
 
Constructor Summary
ApplicationContext(StandardContext context)
          Construct a new instance of this class, associated with the specified Context instance.
 
Method Summary
 javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends javax.servlet.Filter> filterClass)
          Add filter to context.
 javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter)
          Add filter to context.
 javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String filterClass)
          Add filter to context.
 void addListener(Class<? extends EventListener> listenerClass)
           
 void addListener(String className)
           
<T extends EventListener>
void
addListener(T t)
           
 javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends javax.servlet.Servlet> servletClass)
          Add servlet to context.
 javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, javax.servlet.Servlet servlet)
          Add servlet to context.
 javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String servletClass)
          Add servlet to context.
protected  void clearAttributes()
          Clear all application-created attributes.
<T extends javax.servlet.Filter>
T
createFilter(Class<T> c)
           
<T extends EventListener>
T
createListener(Class<T> c)
           
<T extends javax.servlet.Servlet>
T
createServlet(Class<T> c)
           
 void declareRoles(String... roleNames)
           
 Object getAttribute(String name)
          Return the value of the specified context attribute, if any; otherwise return null.
 Enumeration<String> getAttributeNames()
          Return an enumeration of the names of the context attributes associated with this context.
 ClassLoader getClassLoader()
           
protected  StandardContext getContext()
           
 javax.servlet.ServletContext getContext(String uri)
          Return a ServletContext object that corresponds to a specified URI on the server.
 String getContextPath()
          Return the main path associated with this context.
 Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
          By default SessionTrackingMode.URL is always supported, SessionTrackingMode.COOKIE is supported unless the cookies attribute has been set to false for the context and SessionTrackingMode.SSL is supported if at least one of the connectors used by this context has the attribute secure set to true.
 int getEffectiveMajorVersion()
           
 int getEffectiveMinorVersion()
           
 Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
          Return the supplied value if one was previously set, else return the defaults.
protected  javax.servlet.ServletContext getFacade()
          Return the facade associated with this ApplicationContext.
 javax.servlet.FilterRegistration getFilterRegistration(String filterName)
           
 Map<String,? extends javax.servlet.FilterRegistration> getFilterRegistrations()
           
 String getInitParameter(String name)
          Return the value of the specified initialization parameter, or null if this parameter does not exist.
 Enumeration<String> getInitParameterNames()
          Return the names of the context's initialization parameters, or an empty enumeration if the context has no initialization parameters.
 javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
           
 int getMajorVersion()
          Return the major version of the Java Servlet API that we implement.
 String getMimeType(String file)
          Return the MIME type of the specified file, or null if the MIME type cannot be determined.
 int getMinorVersion()
          Return the minor version of the Java Servlet API that we implement.
 javax.servlet.RequestDispatcher getNamedDispatcher(String name)
          Return a RequestDispatcher object that acts as a wrapper for the named servlet.
protected  Map<String,String> getReadonlyAttributes()
           
 String getRealPath(String path)
          Return the real path for a given virtual path, if possible; otherwise return null.
 javax.servlet.RequestDispatcher getRequestDispatcher(String path)
          Return a RequestDispatcher instance that acts as a wrapper for the resource at the given path.
 URL getResource(String path)
          Return the URL to the resource that is mapped to a specified path.
 InputStream getResourceAsStream(String path)
          Return the requested resource as an InputStream.
 Set<String> getResourcePaths(String path)
          Return a Set containing the resource paths of resources member of the specified collection.
 DirContext getResources()
          Return the resources object that is mapped to a specified path.
 String getServerInfo()
          Return the name and version of the servlet container.
 javax.servlet.Servlet getServlet(String name)
          Deprecated. As of Java Servlet API 2.1, with no direct replacement.
 String getServletContextName()
          Return the display name of this web application.
 Enumeration<String> getServletNames()
          Deprecated. As of Java Servlet API 2.1, with no direct replacement.
 javax.servlet.ServletRegistration getServletRegistration(String servletName)
           
 Map<String,? extends javax.servlet.ServletRegistration> getServletRegistrations()
           
 Enumeration<javax.servlet.Servlet> getServlets()
          Deprecated. As of Java Servlet API 2.1, with no direct replacement.
 javax.servlet.SessionCookieConfig getSessionCookieConfig()
           
 void log(Exception exception, String message)
          Deprecated. As of Java Servlet API 2.1, use log(String, Throwable) instead
 void log(String message)
          Writes the specified message to a servlet log file.
 void log(String message, Throwable throwable)
          Writes the specified message and exception to a servlet log file.
 void removeAttribute(String name)
          Remove the context attribute with the specified name, if any.
 void setAttribute(String name, Object value)
          Bind the specified value with the specified context attribute name, replacing any existing value for that name.
 boolean setInitParameter(String name, String value)
           
protected  void setNewServletContextListenerAllowed(boolean allowed)
           
 void setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STRICT_SERVLET_COMPLIANCE

protected static final boolean STRICT_SERVLET_COMPLIANCE

GET_RESOURCE_REQUIRE_SLASH

protected static final boolean GET_RESOURCE_REQUIRE_SLASH

attributes

protected Map<String,Object> attributes
The context attributes for this context.

Constructor Detail

ApplicationContext

public ApplicationContext(StandardContext context)
Construct a new instance of this class, associated with the specified Context instance.

Parameters:
context - The associated Context instance
Method Detail

getResources

public DirContext getResources()
Return the resources object that is mapped to a specified path. The path must begin with a "/" and is interpreted as relative to the current context root.


getAttribute

public Object getAttribute(String name)
Return the value of the specified context attribute, if any; otherwise return null.

Specified by:
getAttribute in interface javax.servlet.ServletContext
Parameters:
name - Name of the context attribute to return
Returns:
an Object containing the value of the attribute, or null if no attribute exists matching the given name
See Also:
ServletContext.getAttributeNames()

getAttributeNames

public Enumeration<String> getAttributeNames()
Return an enumeration of the names of the context attributes associated with this context.

Specified by:
getAttributeNames in interface javax.servlet.ServletContext
Returns:
an Enumeration of attribute names
See Also:
ServletContext.getAttribute(java.lang.String)

getContext

public javax.servlet.ServletContext getContext(String uri)
Return a ServletContext object that corresponds to a specified URI on the server. This method allows servlets to gain access to the context for various parts of the server, and as needed obtain RequestDispatcher objects or resources from the context. The given path must be absolute (beginning with a "/"), and is interpreted based on our virtual host's document root.

Specified by:
getContext in interface javax.servlet.ServletContext
Parameters:
uri - Absolute URI of a resource on the server
Returns:
the ServletContext object that corresponds to the named URL, or null if either none exists or the container wishes to restrict this access.
See Also:
RequestDispatcher

getContextPath

public String getContextPath()
Return the main path associated with this context.

Specified by:
getContextPath in interface javax.servlet.ServletContext

getInitParameter

public String getInitParameter(String name)
Return the value of the specified initialization parameter, or null if this parameter does not exist.

Specified by:
getInitParameter in interface javax.servlet.ServletContext
Parameters:
name - Name of the initialization parameter to retrieve
Returns:
a String containing at least the servlet container name and version number
See Also:
ServletConfig.getInitParameter(java.lang.String)

getInitParameterNames

public Enumeration<String> getInitParameterNames()
Return the names of the context's initialization parameters, or an empty enumeration if the context has no initialization parameters.

Specified by:
getInitParameterNames in interface javax.servlet.ServletContext
Returns:
an Enumeration of String objects containing the names of the context's initialization parameters
See Also:
ServletConfig.getInitParameter(java.lang.String)

getMajorVersion

public int getMajorVersion()
Return the major version of the Java Servlet API that we implement.

Specified by:
getMajorVersion in interface javax.servlet.ServletContext
Returns:
3

getMinorVersion

public int getMinorVersion()
Return the minor version of the Java Servlet API that we implement.

Specified by:
getMinorVersion in interface javax.servlet.ServletContext
Returns:
0

getMimeType

public String getMimeType(String file)
Return the MIME type of the specified file, or null if the MIME type cannot be determined.

Specified by:
getMimeType in interface javax.servlet.ServletContext
Parameters:
file - Filename for which to identify a MIME type
Returns:
a String specifying the file's MIME type

getNamedDispatcher

public javax.servlet.RequestDispatcher getNamedDispatcher(String name)
Return a RequestDispatcher object that acts as a wrapper for the named servlet.

Specified by:
getNamedDispatcher in interface javax.servlet.ServletContext
Parameters:
name - Name of the servlet for which a dispatcher is requested
Returns:
a RequestDispatcher object that acts as a wrapper for the named servlet, or null if the ServletContext cannot return a RequestDispatcher
See Also:
RequestDispatcher, ServletContext.getContext(java.lang.String), ServletConfig.getServletName()

getRealPath

public String getRealPath(String path)
Return the real path for a given virtual path, if possible; otherwise return null.

Specified by:
getRealPath in interface javax.servlet.ServletContext
Parameters:
path - The path to the desired resource
Returns:
a String specifying the real path, or null if the translation cannot be performed

getRequestDispatcher

public javax.servlet.RequestDispatcher getRequestDispatcher(String path)
Return a RequestDispatcher instance that acts as a wrapper for the resource at the given path. The path must begin with a "/" and is interpreted as relative to the current context root.

Specified by:
getRequestDispatcher in interface javax.servlet.ServletContext
Parameters:
path - The path to the desired resource.
Returns:
a RequestDispatcher object that acts as a wrapper for the resource at the specified path, or null if the ServletContext cannot return a RequestDispatcher
See Also:
RequestDispatcher, ServletContext.getContext(java.lang.String)

getResource

public URL getResource(String path)
                throws MalformedURLException
Return the URL to the resource that is mapped to a specified path. The path must begin with a "/" and is interpreted as relative to the current context root.

Specified by:
getResource in interface javax.servlet.ServletContext
Parameters:
path - The path to the desired resource
Returns:
the resource located at the named path, or null if there is no resource at that path
Throws:
MalformedURLException - if the path is not given in the correct form

getResourceAsStream

public InputStream getResourceAsStream(String path)
Return the requested resource as an InputStream. The path must be specified according to the rules described under getResource. If no such resource can be identified, return null.

Specified by:
getResourceAsStream in interface javax.servlet.ServletContext
Parameters:
path - The path to the desired resource.
Returns:
the InputStream returned to the servlet, or null if no resource exists at the specified path

getResourcePaths

public Set<String> getResourcePaths(String path)
Return a Set containing the resource paths of resources member of the specified collection. Each path will be a String starting with a "/" character. The returned set is immutable.

Specified by:
getResourcePaths in interface javax.servlet.ServletContext
Parameters:
path - Collection path
Returns:
a Set containing the directory listing, or null if there are no resources in the web application whose path begins with the supplied path.

getServerInfo

public String getServerInfo()
Return the name and version of the servlet container.

Specified by:
getServerInfo in interface javax.servlet.ServletContext
Returns:
a String containing at least the servlet container name and version number

getServlet

@Deprecated
public javax.servlet.Servlet getServlet(String name)
Deprecated. As of Java Servlet API 2.1, with no direct replacement.

Specified by:
getServlet in interface javax.servlet.ServletContext

getServletContextName

public String getServletContextName()
Return the display name of this web application.

Specified by:
getServletContextName in interface javax.servlet.ServletContext
Returns:
The name of the web application or null if no name has been declared in the deployment descriptor.

getServletNames

@Deprecated
public Enumeration<String> getServletNames()
Deprecated. As of Java Servlet API 2.1, with no direct replacement.

Specified by:
getServletNames in interface javax.servlet.ServletContext

getServlets

@Deprecated
public Enumeration<javax.servlet.Servlet> getServlets()
Deprecated. As of Java Servlet API 2.1, with no direct replacement.

Specified by:
getServlets in interface javax.servlet.ServletContext

log

public void log(String message)
Writes the specified message to a servlet log file.

Specified by:
log in interface javax.servlet.ServletContext
Parameters:
message - Message to be written

log

@Deprecated
public void log(Exception exception,
                           String message)
Deprecated. As of Java Servlet API 2.1, use log(String, Throwable) instead

Writes the specified exception and message to a servlet log file.

Specified by:
log in interface javax.servlet.ServletContext
Parameters:
exception - Exception to be reported
message - Message to be written

log

public void log(String message,
                Throwable throwable)
Writes the specified message and exception to a servlet log file.

Specified by:
log in interface javax.servlet.ServletContext
Parameters:
message - Message to be written
throwable - Exception to be reported

removeAttribute

public void removeAttribute(String name)
Remove the context attribute with the specified name, if any.

Specified by:
removeAttribute in interface javax.servlet.ServletContext
Parameters:
name - Name of the context attribute to be removed

setAttribute

public void setAttribute(String name,
                         Object value)
Bind the specified value with the specified context attribute name, replacing any existing value for that name.

Specified by:
setAttribute in interface javax.servlet.ServletContext
Parameters:
name - Attribute name to be bound
value - New attribute value to be bound

addFilter

public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName,
                                                          String filterClass)
                                                   throws IllegalStateException
Add filter to context.

Specified by:
addFilter in interface javax.servlet.ServletContext
Parameters:
filterName - Name of filter to add
filterClass - Name of filter class
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

addFilter

public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName,
                                                          javax.servlet.Filter filter)
                                                   throws IllegalStateException
Add filter to context.

Specified by:
addFilter in interface javax.servlet.ServletContext
Parameters:
filterName - Name of filter to add
filter - Filter to add
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

addFilter

public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName,
                                                          Class<? extends javax.servlet.Filter> filterClass)
                                                   throws IllegalStateException
Add filter to context.

Specified by:
addFilter in interface javax.servlet.ServletContext
Parameters:
filterName - Name of filter to add
filterClass - Class of filter to add
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

createFilter

public <T extends javax.servlet.Filter> T createFilter(Class<T> c)
                                            throws javax.servlet.ServletException
Specified by:
createFilter in interface javax.servlet.ServletContext
Returns:
Throws:
javax.servlet.ServletException

getFilterRegistration

public javax.servlet.FilterRegistration getFilterRegistration(String filterName)
Specified by:
getFilterRegistration in interface javax.servlet.ServletContext
Returns:

addServlet

public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName,
                                                            String servletClass)
                                                     throws IllegalStateException
Add servlet to context.

Specified by:
addServlet in interface javax.servlet.ServletContext
Parameters:
servletName - Name of servlet to add
servletClass - Name of servlet class
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

addServlet

public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName,
                                                            javax.servlet.Servlet servlet)
                                                     throws IllegalStateException
Add servlet to context.

Specified by:
addServlet in interface javax.servlet.ServletContext
Parameters:
servletName - Name of servlet to add
servlet - Servlet instance to add
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

addServlet

public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName,
                                                            Class<? extends javax.servlet.Servlet> servletClass)
                                                     throws IllegalStateException
Add servlet to context.

Specified by:
addServlet in interface javax.servlet.ServletContext
Parameters:
servletName - Name of servlet to add
servletClass - Class of servlet to add
Throws:
IllegalStateException - if the context has already been initialised
UnsupportedOperationException - - if this context was passed to the ServletContextListener.contextInitialized(javax.servlet.ServletContextEvent) method of a ServletContextListener that was not declared in web.xml, a web-fragment or annotated with WebListener.

createServlet

public <T extends javax.servlet.Servlet> T createServlet(Class<T> c)
                                              throws javax.servlet.ServletException
Specified by:
createServlet in interface javax.servlet.ServletContext
Returns:
Throws:
javax.servlet.ServletException

getServletRegistration

public javax.servlet.ServletRegistration getServletRegistration(String servletName)
Specified by:
getServletRegistration in interface javax.servlet.ServletContext
Returns:

getDefaultSessionTrackingModes

public Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
By default SessionTrackingMode.URL is always supported, SessionTrackingMode.COOKIE is supported unless the cookies attribute has been set to false for the context and SessionTrackingMode.SSL is supported if at least one of the connectors used by this context has the attribute secure set to true.

Specified by:
getDefaultSessionTrackingModes in interface javax.servlet.ServletContext
Returns:

getEffectiveSessionTrackingModes

public Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
Return the supplied value if one was previously set, else return the defaults.

Specified by:
getEffectiveSessionTrackingModes in interface javax.servlet.ServletContext
Returns:

getSessionCookieConfig

public javax.servlet.SessionCookieConfig getSessionCookieConfig()
Specified by:
getSessionCookieConfig in interface javax.servlet.ServletContext
Returns:

setSessionTrackingModes

public void setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
Specified by:
setSessionTrackingModes in interface javax.servlet.ServletContext
Throws:
IllegalStateException - if the context has already been initialised
IllegalArgumentException - If SSL is requested in combination with anything else or if an unsupported tracking mode is requested

setInitParameter

public boolean setInitParameter(String name,
                                String value)
Specified by:
setInitParameter in interface javax.servlet.ServletContext
Returns:

addListener

public void addListener(Class<? extends EventListener> listenerClass)
Specified by:
addListener in interface javax.servlet.ServletContext

addListener

public void addListener(String className)
Specified by:
addListener in interface javax.servlet.ServletContext

addListener

public <T extends EventListener> void addListener(T t)
Specified by:
addListener in interface javax.servlet.ServletContext

createListener

public <T extends EventListener> T createListener(Class<T> c)
                                       throws javax.servlet.ServletException
Specified by:
createListener in interface javax.servlet.ServletContext
Returns:
Throws:
javax.servlet.ServletException

declareRoles

public void declareRoles(String... roleNames)
Specified by:
declareRoles in interface javax.servlet.ServletContext

getClassLoader

public ClassLoader getClassLoader()
Specified by:
getClassLoader in interface javax.servlet.ServletContext
Returns:

getEffectiveMajorVersion

public int getEffectiveMajorVersion()
Specified by:
getEffectiveMajorVersion in interface javax.servlet.ServletContext
Returns:

getEffectiveMinorVersion

public int getEffectiveMinorVersion()
Specified by:
getEffectiveMinorVersion in interface javax.servlet.ServletContext
Returns:

getFilterRegistrations

public Map<String,? extends javax.servlet.FilterRegistration> getFilterRegistrations()
Specified by:
getFilterRegistrations in interface javax.servlet.ServletContext
Returns:

getJspConfigDescriptor

public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
Specified by:
getJspConfigDescriptor in interface javax.servlet.ServletContext
Returns:

getServletRegistrations

public Map<String,? extends javax.servlet.ServletRegistration> getServletRegistrations()
Specified by:
getServletRegistrations in interface javax.servlet.ServletContext
Returns:

getContext

protected StandardContext getContext()

getReadonlyAttributes

protected Map<String,String> getReadonlyAttributes()

clearAttributes

protected void clearAttributes()
Clear all application-created attributes.


getFacade

protected javax.servlet.ServletContext getFacade()
Return the facade associated with this ApplicationContext.


setNewServletContextListenerAllowed

protected void setNewServletContextListenerAllowed(boolean allowed)

Apache Tomcat 7.0.0

Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.