JSF is a server-side component based UI framework for developing web applications using reusable UI components and a standard lifecycle. It provides components like inputText, commandButton, and tag libraries to add components to pages and connect them to server-side objects. The JSF lifecycle consists of six phases - restore view, apply request values, process validations, update model values, invoke application, and render response.