JavaServer Faces (JSF) is a component-based architecture, which means that instead of working with markup, the developer works with UI components, similar to Swing. Thus JSF simplifies Web development. The developer need not be concerned with UI implementations, and is able to use declarative definition, making it more robust and extensible.
JSF is a server-side UI technology, as opposed to a client-side UI technology such as ADF Swing. Requests are sent from the Web browser or other client to the server, where JSF translates the request into an event that the application logic can process. JSF also ensures that every widget that is defined on the server is correctly displayed on the client.
JSF technology establishes the standard for building server-side user interfaces, managing their state, handling events and input validation, defining page navigation, and supporting internationalization and accessibility. JSF hides the complexities of UI management, simplifying the process of building Web UIs.