The Java standard for developing component-based web interfaces, JavaServer Faces (JSF) presents formal components in a logical tree using XML document, and especially suitable for large-scale, Java enterprise development.
Just like JavaServer Pages (JSP), it allows access to server-side data and logic, while the former is essentially an HTML imbued with server-side capabilities.
JSF is independent of the HTML, as the components are backed by Java objects, and coupled with the full range of Java abilities, including remote APIs and database accessibility, allowing to build web interfaces without much interaction with the base technologies.
Its approach to component-based UI development for web applications involves the MVC architecture, event model, and component library, which include the new features available in JSF 2.3 and PrimeFaces for component library.
The specification spawns a wealth of frameworks and libraries, which has kept pace with the most recent client-side improvements, for instance the PrimeFaces.
While JSF pages can be used within JavaServer Pages, it's perhaps more common for Facelets used to build standalone JSF pages, and the Facelets are XHTML pages designed for JSF interfaces; using XML tags you can create a component tree as the scaffold for a JSF user interface.
The standards are governed by the open source community, with the Java Community Process (JCP) having overseen the development of Java technology; and Servlets, JSP, and JSF were all developed using JCP's open source specification process.