WebObjects applications are event-driven, but instead of responding to mouse and keyboard events, they respond to HTTP requests. A WebObjects application receives a request, responds to it, then waits for the next request. The application continues to respond to requests until it terminates. On each cycle of this request-response loop, the application stores user input, invokes a method if one is associated with the user's action, and generates a response---usually an HTML page.
One way to get a sense of how WebObjects does this work is to survey incrementally the relationships and dynamics of the public classes. By learning about the basic role of each class, you can see how objects of that class fit into the mechanics of request handling.
Let's start the tour with the typical opening scenario: An incoming message (URL) from a client browser is handled by the HTTP server. From that point until an HTTP response is returned, WebObjects is working.