Engine
As we saw in the last chapter, the connector subsystem was responsible for receiving the incoming request, converting it into an internal protocol-agnostic representation, and then passing it on to the engine for further processing.
All the complexity specific to a given protocol is abstracted away by the connector subsystem, allowing the engine to focus purely on the processing of the request. This has the beneficial effect of allowing a single engine to support multiple protocols such as HTTP or AJP.
An engine processes the request, by delegating to a child container, and returns the resulting protocol-agnostic response to the connector subsystem, which makes the response conform to the protocol understood by its client.
The key decision made by an engine (or as we will see later, by its basic valve) is the selection of the virtual host to which it should delegate the processing of a given request.
Configuring an Engine
The conf/server.xml
file contains a default<Engine>
element...