Table of Contents Previous Section

Request-Response Loop Information

A request-response cycle (sometimes called a transaction) has three phases, the first for transferring user-entered data to the objects associated with the request page, the second for invoking an action method, and the third for generating and returning the response. The application initiates each phase by sending a messages: takeValuesFromRequest:inContext:, invokeActionForRequest:inContext:, and appendToResponse:inContext: It passes in WORequest, WOResponse, and WOContext objects as arguments to one or more of these methods. From these objects, the components, dynamic elements, and other objects involved in the transaction get essential information. (See "The Phases of the Request-Response Loop" for more on the mechanics of request handling).



- WORequest
Stores essential data about an HTTP request, such as header information, form values, HTTP version, host and page name, and session, context, and sender IDs.

- WOResponse
Stores and allows the modification of HTTP response data, such as header information, status, and HTTP version. It also provides convenience methods for appending HTML and simple textual data to the content of the response (that is, the response page).

- WOContext
Provides access to the objects involved in the current transaction, including the current request, response, session, and application objects. It also stores the component (which is either the current page or one of its subcomponents) to which the elements of the page make reference when they "push and pull" values via association (see "Component and Element" for an explanation of this). The WOContext object acts as a "cursor" for traversing the object graph during a phase of the request-response loop. The WOContext for a transaction is identified by a unique context ID, which appears in the URL.

Table of Contents Next Section