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

Fields
`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

Constructors
Constructor and Description
`AbstractRequestAttributes()`

### Method Summary

Methods
`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.