org.springframework.web.context

## Interface WebApplicationContext

- All Superinterfaces:
    ApplicationContext, ApplicationEventPublisher, BeanFactory, EnvironmentCapable, HierarchicalBeanFactory, ListableBeanFactory, MessageSource, ResourceLoader, ResourcePatternResolver
  All Known Subinterfaces:
    ConfigurablePortletApplicationContext, ConfigurableWebApplicationContext
  All Known Implementing Classes:
    AbstractRefreshablePortletApplicationContext, AbstractRefreshableWebApplicationContext, AnnotationConfigWebApplicationContext, GenericWebApplicationContext, StaticPortletApplicationContext, StaticWebApplicationContext, XmlPortletApplicationContext, XmlWebApplicationContext

      public interface WebApplicationContext
      extends ApplicationContext

  Interface to provide configuration for a web application. This is read-only while the application is running, but may be reloaded if the implementation supports this.

  This interface adds a `getServletContext()` method to the generic ApplicationContext interface, and defines a well-known application attribute name that the root context must be bound to in the bootstrap process.

  Like generic application contexts, web application contexts are hierarchical. There is a single root context per application, while each servlet in the application (including a dispatcher servlet in the MVC framework) has its own child context.

  In addition to standard application context lifecycle capabilities, WebApplicationContext implementations need to detect `ServletContextAware` beans and invoke the `setServletContext` method accordingly.

  Since:
    January 19, 2001
  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `ServletContextAware.setServletContext(javax.servlet.ServletContext)`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CONTEXT_ATTRIBUTES_BEAN_NAME` Name of the ServletContext/PortletContext attributes environment bean in the factory.
    `static String` | `CONTEXT_PARAMETERS_BEAN_NAME` Name of the ServletContext/PortletContext init-params environment bean in the factory.
    `static String` | `ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE` Context attribute to bind root WebApplicationContext to on successful startup.
    `static String` | `SCOPE_APPLICATION` Scope identifier for the global web application scope: "application".
    `static String` | `SCOPE_GLOBAL_SESSION` Scope identifier for global session scope: "globalSession".
    `static String` | `SCOPE_REQUEST` Scope identifier for request scope: "request".
    `static String` | `SCOPE_SESSION` Scope identifier for session scope: "session".
    `static String` | `SERVLET_CONTEXT_BEAN_NAME` Name of the ServletContext environment bean in the factory.

    - ### Fields inherited from interface org.springframework.beans.factory.BeanFactory

      `FACTORY_BEAN_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `CLASSPATH_ALL_URL_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.ResourceLoader

      `CLASSPATH_URL_PREFIX`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ServletContext` | `getServletContext()` Return the standard Servlet API ServletContext for this application.

    - ### Methods inherited from interface org.springframework.context.ApplicationContext

      `getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate`

    - ### Methods inherited from interface org.springframework.core.env.EnvironmentCapable

      `getEnvironment`

    - ### Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory

      `containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation`

    - ### Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory

      `containsLocalBean, getParentBeanFactory`

    - ### Methods inherited from interface org.springframework.beans.factory.BeanFactory

      `containsBean, getAliases, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch`

    - ### Methods inherited from interface org.springframework.context.MessageSource

      `getMessage, getMessage, getMessage`

    - ### Methods inherited from interface org.springframework.context.ApplicationEventPublisher

      `publishEvent`

    - ### Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `getResources`

    - ### Methods inherited from interface org.springframework.core.io.ResourceLoader

      `getClassLoader, getResource`

- - ### Field Detail

    - #### ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE

          static final String ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE

      Context attribute to bind root WebApplicationContext to on successful startup.

      Note: If the startup of the root context fails, this attribute can contain an exception or error as value. Use WebApplicationContextUtils for convenient lookup of the root WebApplicationContext.

      See Also:
        `WebApplicationContextUtils.getWebApplicationContext(javax.servlet.ServletContext)`, `WebApplicationContextUtils.getRequiredWebApplicationContext(javax.servlet.ServletContext)`

    - #### SCOPE_REQUEST

          static final String SCOPE_REQUEST

      Scope identifier for request scope: "request". Supported in addition to the standard scopes "singleton" and "prototype".
      See Also:
        Constant Field Values

    - #### SCOPE_SESSION

          static final String SCOPE_SESSION

      Scope identifier for session scope: "session". Supported in addition to the standard scopes "singleton" and "prototype".
      See Also:
        Constant Field Values

    - #### SCOPE_GLOBAL_SESSION

          static final String SCOPE_GLOBAL_SESSION

      Scope identifier for global session scope: "globalSession". Supported in addition to the standard scopes "singleton" and "prototype".
      See Also:
        Constant Field Values

    - #### SCOPE_APPLICATION

          static final String SCOPE_APPLICATION

      Scope identifier for the global web application scope: "application". Supported in addition to the standard scopes "singleton" and "prototype".
      See Also:
        Constant Field Values

    - #### SERVLET_CONTEXT_BEAN_NAME

          static final String SERVLET_CONTEXT_BEAN_NAME

      Name of the ServletContext environment bean in the factory.
      See Also:
        `ServletContext`, Constant Field Values

    - #### CONTEXT_PARAMETERS_BEAN_NAME

          static final String CONTEXT_PARAMETERS_BEAN_NAME

      Name of the ServletContext/PortletContext init-params environment bean in the factory.

      Note: Possibly merged with ServletConfig/PortletConfig parameters. ServletConfig parameters override ServletContext parameters of the same name.

      See Also:
        `ServletContext.getInitParameterNames()`, `ServletContext.getInitParameter(String)`, `ServletConfig.getInitParameterNames()`, `ServletConfig.getInitParameter(String)`, Constant Field Values

    - #### CONTEXT_ATTRIBUTES_BEAN_NAME

          static final String CONTEXT_ATTRIBUTES_BEAN_NAME

      Name of the ServletContext/PortletContext attributes environment bean in the factory.
      See Also:
        `ServletContext.getAttributeNames()`, `ServletContext.getAttribute(String)`, Constant Field Values

  - ### Method Detail

    - #### getServletContext

          ServletContext getServletContext()

      Return the standard Servlet API ServletContext for this application.

      Also available for a Portlet application, in addition to the PortletContext.