JSF
JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It provides a server-side framework that manages UI components, event handling, and the lifecycle of a user interface, enabling developers to build reusable UI elements and pages. JSF is part of the Java Platform, originally within Java EE and, since the transition to Jakarta EE, under the Jakarta namespace. A typical JSF application routes requests through a central FacesServlet, which creates and manages a component tree and a request lifecycle.
Key concepts in JSF include UI components, Facelets as the view declaration language, and Expression Language
The JSF lifecycle consists of six phases: Restore View, Apply Request Values, Process Validations, Update Model
Over time, JSF has evolved to support AJAX out of the box, CDI integration, and improved tooling