A component consists of two parts: view and handle. They are like two sides of the same coin. The view is the visual part of a component, which is running at the browser and interacts with the user. The handle is a Java object running at the server and interacts with the application.
![]() |
The view is the visual part of a component. It is the appearance that the user sees and interacts with. When a component is created and attached to a page, its view is created at the client to provide the visual appearance.
For example, when the application creates a button (at the server), the button-look view will be created accordingly at the client, so the user can click it.
The handle is actually a Java object running at the server. It have all states and API that the application can access. From application's viewpoint, all it knows and access is this Java object. In other words, the application doesn't communicate with the user directly via Internet. Rather, the application talks to the Java object and the Java object (by and large, the component) updates the visual part accordingly. Similarly, if an user access the visual part, it is component's job to update the Java object and notify the application (with events).
The application don't need to know anything about Ajax, Java Mobile, Google Android or Flash[1]. The client and communication technologies are encapsulated by the implementation of the component(s).
[1] The application can have his own client codes to communicate with the client and/or user directly. It is an option.