org.springframework.web.servlet.support

## Class RequestContextUtils

- java.lang.Object
- - org.springframework.web.servlet.support.RequestContextUtils

-     public abstract class RequestContextUtils
      extends Object

  Utility class for easy access to request-specific state which has been set by the `DispatcherServlet`.

  Supports lookup of current WebApplicationContext, LocaleResolver, Locale, ThemeResolver, Theme, and MultipartResolver.

  Since:
    03.03.2003
  Author:
    Juergen Hoeller, Rossen Stoyanchev
  See Also:
    `RequestContext`, `DispatcherServlet`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RequestContextUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static FlashMapManager` | `getFlashMapManager(HttpServletRequest request)` Return the FlashMapManager instance to save flash attributes with before a redirect.
    `static Map<String,?>` | `getInputFlashMap(HttpServletRequest request)` Return a read-only `Map` with "input" flash attributes saved on a previous request.
    `static Locale` | `getLocale(HttpServletRequest request)` Retrieve the current locale from the given request, using the LocaleResolver bound to the request by the DispatcherServlet (if available), falling back to the request's accept-header Locale.
    `static LocaleResolver` | `getLocaleResolver(HttpServletRequest request)` Return the LocaleResolver that has been bound to the request by the DispatcherServlet.
    `static FlashMap` | `getOutputFlashMap(HttpServletRequest request)` Return the "output" FlashMap with attributes to save for a subsequent request.
    `static Theme` | `getTheme(HttpServletRequest request)` Retrieves the current theme from the given request, using the ThemeResolver and ThemeSource bound to the request by the DispatcherServlet.
    `static ThemeResolver` | `getThemeResolver(HttpServletRequest request)` Return the ThemeResolver that has been bound to the request by the DispatcherServlet.
    `static ThemeSource` | `getThemeSource(HttpServletRequest request)` Return the ThemeSource that has been bound to the request by the DispatcherServlet.
    `static TimeZone` | `getTimeZone(HttpServletRequest request)` Retrieve the current time zone from the given request, using the TimeZoneAwareLocaleResolver bound to the request by the DispatcherServlet (if available), falling back to the system's default time zone.
    `static WebApplicationContext` | `getWebApplicationContext(ServletRequest request)` Look for the WebApplicationContext associated with the DispatcherServlet that has initiated request processing.
    `static WebApplicationContext` | `getWebApplicationContext(ServletRequest request, ServletContext servletContext)` Look for the WebApplicationContext associated with the DispatcherServlet that has initiated request processing, and for the global context if none was found associated with the current request.

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

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

- - ### Constructor Detail

    - #### RequestContextUtils

          public RequestContextUtils()

  - ### Method Detail

    - #### getWebApplicationContext

          public static WebApplicationContext getWebApplicationContext(ServletRequest request)
                                                                throws IllegalStateException

      Look for the WebApplicationContext associated with the DispatcherServlet that has initiated request processing.
      Parameters:
        `request` - current HTTP request
      Returns:
        the request-specific web application context
      Throws:
        `IllegalStateException` - if no servlet-specific context has been found

    - #### getWebApplicationContext

          public static WebApplicationContext getWebApplicationContext(ServletRequest request,
                                                                       ServletContext servletContext)
                                                                throws IllegalStateException

      Look for the WebApplicationContext associated with the DispatcherServlet that has initiated request processing, and for the global context if none was found associated with the current request. This method is useful to allow components outside the framework, such as JSP tag handlers, to access the most specific application context available.
      Parameters:
        `request` - current HTTP request
        `servletContext` - current servlet context
      Returns:
        the request-specific WebApplicationContext, or the global one if no request-specific context has been found
      Throws:
        `IllegalStateException` - if neither a servlet-specific nor a global context has been found

    - #### getLocaleResolver

          public static LocaleResolver getLocaleResolver(HttpServletRequest request)

      Return the LocaleResolver that has been bound to the request by the DispatcherServlet.
      Parameters:
        `request` - current HTTP request
      Returns:
        the current LocaleResolver, or `null` if not found

    - #### getLocale

          public static Locale getLocale(HttpServletRequest request)

      Retrieve the current locale from the given request, using the LocaleResolver bound to the request by the DispatcherServlet (if available), falling back to the request's accept-header Locale.

      This method serves as a straightforward alternative to the standard Servlet `ServletRequest.getLocale()` method, falling back to the latter if no more specific locale has been found.

      Consider using `LocaleContextHolder.getLocale()` which will normally be populated with the same Locale.

      Parameters:
        `request` - current HTTP request
      Returns:
        the current locale for the given request, either from the LocaleResolver or from the plain request itself
      See Also:
        `getLocaleResolver(javax.servlet.http.HttpServletRequest)`, `LocaleContextHolder.getLocale()`

    - #### getTimeZone

          public static TimeZone getTimeZone(HttpServletRequest request)

      Retrieve the current time zone from the given request, using the TimeZoneAwareLocaleResolver bound to the request by the DispatcherServlet (if available), falling back to the system's default time zone.

      Note: This method returns `null` if no specific time zone can be resolved for the given request. This is in contrast to `getLocale(javax.servlet.http.HttpServletRequest)` where there is always the request's accept-header locale to fall back to.

      Consider using `LocaleContextHolder.getTimeZone()` which will normally be populated with the same TimeZone: That method only differs in terms of its fallback to the system time zone if the LocaleResolver hasn't provided provided a specific time zone (instead of this method's `null`).

      Parameters:
        `request` - current HTTP request
      Returns:
        the current time zone for the given request, either from the TimeZoneAwareLocaleResolver or `null` if none associated
      See Also:
        `getLocaleResolver(javax.servlet.http.HttpServletRequest)`, `LocaleContextHolder.getTimeZone()`

    - #### getThemeResolver

          public static ThemeResolver getThemeResolver(HttpServletRequest request)

      Return the ThemeResolver that has been bound to the request by the DispatcherServlet.
      Parameters:
        `request` - current HTTP request
      Returns:
        the current ThemeResolver, or `null` if not found

    - #### getThemeSource

          public static ThemeSource getThemeSource(HttpServletRequest request)

      Return the ThemeSource that has been bound to the request by the DispatcherServlet.
      Parameters:
        `request` - current HTTP request
      Returns:
        the current ThemeSource

    - #### getTheme

          public static Theme getTheme(HttpServletRequest request)

      Retrieves the current theme from the given request, using the ThemeResolver and ThemeSource bound to the request by the DispatcherServlet.
      Parameters:
        `request` - current HTTP request
      Returns:
        the current theme, or `null` if not found
      See Also:
        `getThemeResolver(javax.servlet.http.HttpServletRequest)`

    - #### getInputFlashMap

          public static Map<String,?> getInputFlashMap(HttpServletRequest request)

      Return a read-only `Map` with "input" flash attributes saved on a previous request.
      Parameters:
        `request` - the current request
      Returns:
        a read-only Map, or `null` if not found
      See Also:
        `FlashMap`

    - #### getOutputFlashMap

          public static FlashMap getOutputFlashMap(HttpServletRequest request)

      Return the "output" FlashMap with attributes to save for a subsequent request.
      Parameters:
        `request` - the current request
      Returns:
        a `FlashMap` instance (never `null` within a DispatcherServlet request)
      See Also:
        `FlashMap`

    - #### getFlashMapManager

          public static FlashMapManager getFlashMapManager(HttpServletRequest request)

      Return the FlashMapManager instance to save flash attributes with before a redirect.
      Parameters:
        `request` - the current request
      Returns:
        a `FlashMapManager` instance (never `null` within a DispatcherServlet request)