JavaServer Faces is based on the Model-View-Controller (MVC) design pattern and used to develop and build Web and Portal applications. For JSF, this means that the controller component is a servlet, the model component is represented by Java Beans, and the view comprises JSF components with little or no application code.
As illustrated in Figure 16-1, the main components of JSF technology are:
An API for representing and managing UI components and their state; handling events, input validation at the server-side, and data conversion; defining page navigation; supporting internationalization and accessibility; and providing extensibility for all these features.
An extensive set of reusable user interface (UI) components.