## org.springframework.web.context.request
Class RequestContextHolder

    java.lang.Object
      org.springframework.web.context.request.RequestContextHolder

    public abstract class RequestContextHolder

extends Object

Holder class to expose the web request in the form of a thread-bound `RequestAttributes` object.

Use `RequestContextListener` or `RequestContextFilter` to expose the current web request. Note that `DispatcherServlet` and `DispatcherPortlet` already expose the current request by default.

Since:
  2.0
Author:
  Juergen Hoeller, Rod Johnson
See Also:
  `RequestContextListener`, `RequestContextFilter`, `DispatcherServlet`, `DispatcherPortlet`

Constructor Summary
`RequestContextHolder()`

Method Summary
`static RequestAttributes` `currentRequestAttributes()` Return the RequestAttributes currently bound to the thread.
`static RequestAttributes` `getRequestAttributes()` Return the RequestAttributes currently bound to the thread.
`static void` `resetRequestAttributes()` Reset the RequestAttributes for the current thread.
`static void` `setRequestAttributes(RequestAttributes attributes)` Bind the given RequestAttributes to the current thread, not exposing it as inheritable for child threads.
`static void` `setRequestAttributes(RequestAttributes attributes, boolean inheritable)` Bind the given RequestAttributes to the current thread.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RequestContextHolder

    public RequestContextHolder()

Method Detail

### resetRequestAttributes

    public static void resetRequestAttributes()

  Reset the RequestAttributes for the current thread.

### setRequestAttributes

    public static void setRequestAttributes(RequestAttributes attributes)

  Bind the given RequestAttributes to the current thread, not exposing it as inheritable for child threads.

  Parameters:
    `attributes` - the RequestAttributes to expose
  See Also:
    `setRequestAttributes(RequestAttributes, boolean)`

### setRequestAttributes

    public static void setRequestAttributes(RequestAttributes attributes,
                                            boolean inheritable)

  Bind the given RequestAttributes to the current thread.

  Parameters:
    `attributes` - the RequestAttributes to expose
    `inheritable` - whether to expose the RequestAttributes as inheritable for child threads (using an `InheritableThreadLocal`)

### getRequestAttributes

    public static RequestAttributes getRequestAttributes()

  Return the RequestAttributes currently bound to the thread.

  Returns:
    the RequestAttributes currently bound to the thread, or `null` if none bound

### currentRequestAttributes

    public static RequestAttributes currentRequestAttributes()
                                                      throws IllegalStateException

  Return the RequestAttributes currently bound to the thread.

  Exposes the previously bound RequestAttributes instance, if any. Falls back to the current JSF FacesContext, if any.

  Returns:
    the RequestAttributes currently bound to the thread
  Throws:
    `IllegalStateException` - if no RequestAttributes object is bound to the current thread
  See Also:
    `setRequestAttributes(org.springframework.web.context.request.RequestAttributes)`, `ServletRequestAttributes`, `FacesRequestAttributes`, `FacesContext.getCurrentInstance()`

Copyright © 2002-2008 The Spring Framework.