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

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

All Implemented Interfaces:
  RequestAttributes

Direct Known Subclasses:
  PortletRequestAttributes, ServletRequestAttributes

    public abstract class AbstractRequestAttributes

extends Object
implements RequestAttributes

Abstract support class for RequestAttributes implementations, offering a request completion mechanism for request-specific destruction callbacks and for updating accessed session attributes.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  `requestCompleted()`

Field Summary
`protected Map<String,Runnable>` `requestDestructionCallbacks` Map from attribute name String to destruction callback Runnable

Fields inherited from interface org.springframework.web.context.request.RequestAttributes
`REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION`

Constructor Summary
`AbstractRequestAttributes()`

Method Summary
`protected boolean` `isRequestActive()` Determine whether the original request is still active.
`protected void` `registerRequestDestructionCallback(String name, Runnable callback)` Register the given callback as to be executed after request completion.
`protected void` `removeRequestDestructionCallback(String name)` Remove the request destruction callback for the specified attribute, if any.
`void` `requestCompleted()` Signal that the request has been completed.
`protected abstract void` `updateAccessedSessionAttributes()` Update all session attributes that have been accessed during request processing, to expose their potentially updated state to the underlying session manager.

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

Methods inherited from interface org.springframework.web.context.request.RequestAttributes
`getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute`

Field Detail

### requestDestructionCallbacks

    protected final Map<String,Runnable> requestDestructionCallbacks

  Map from attribute name String to destruction callback Runnable

Constructor Detail

### AbstractRequestAttributes

    public AbstractRequestAttributes()

Method Detail

### requestCompleted

    public void requestCompleted()

  Signal that the request has been completed.

  Executes all request destruction callbacks and updates the session attributes that have been accessed during request processing.

### isRequestActive

    protected final boolean isRequestActive()

  Determine whether the original request is still active.

  See Also:
    `requestCompleted()`

### registerRequestDestructionCallback

    protected final void registerRequestDestructionCallback(String name,
                                                            Runnable callback)

  Register the given callback as to be executed after request completion.

  Parameters:
    `name` - the name of the attribute to register the callback for
    `callback` - the callback to be executed for destruction

### removeRequestDestructionCallback

    protected final void removeRequestDestructionCallback(String name)

  Remove the request destruction callback for the specified attribute, if any.

  Parameters:
    `name` - the name of the attribute to remove the callback for

### updateAccessedSessionAttributes

    protected abstract void updateAccessedSessionAttributes()

  Update all session attributes that have been accessed during request processing, to expose their potentially updated state to the underlying session manager.