Package org.springframework.web.context.request

# Class AbstractRequestAttributes

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

All Implemented Interfaces:
  `RequestAttributes`

Direct Known Subclasses:
  `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
Modifier and Type
Field
Description
`protected final 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_REQUEST, SCOPE_SESSION`

## Constructor Summary

Constructors
Constructor
Description
`AbstractRequestAttributes()`

## Method Summary

Modifier and Type
Method
Description
`protected final boolean`
`isRequestActive()`
Determine whether the original request is still active.
`protected final void`
`registerRequestDestructionCallback(String name, Runnable callback)`
Register the given callback as to be executed after request completion.
`protected final 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 Details

### requestDestructionCallbacks

protected final Map<String,Runnable> requestDestructionCallbacks
Map from attribute name String to destruction callback Runnable.

## Constructor Details

### AbstractRequestAttributes

public AbstractRequestAttributes()

## Method Details

### 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.