UI 컴포넌트(컨트롤 또는 그냥 컴포넌트라고 부르기도 함) - 상태를 유지하는 객체다(stateful object). UI 컴포넌트는 자바빈으로 프로퍼티, 메서드, 이벤트를 가지고 있다. UI 컴포넌트는 뷰를 구성하며, 보통 컴포넌트 트리가 한 페이지를 보여준다.

랜더러(renderer) - UI 컴포넌트를 보여주며 사용자 입력값을 컴포넌트의 값으로 변환하는 책임을 가지고 있다. 랜더러는 한개 또는 여러개의 UI 컴포넌트를 다룰 수 있으며 한개의 UI 컴포넌트가 여러개의 다른 랜더러에 의해 처리될 수 있다.

검증기(validator) - 사용자가 입력한 값을 수용할 수 있는지 검사한다. 한 개의 UI 컴포넌트가 여러개의 검증기에 의해 처리될 수 있다.

백빈(backing bean) - UI 컴포넌트에서 값을 수집하며 이벤트 리스너 메소드를 구현하는 자바빈이다. UI 컴포넌트에 대한 레퍼런스도 가질 수 있다.

변환기(converter) - 컴포넌트의 값을 화변에 보여줄 문자열로 변환하고 그 반대로도 변환해준다. 한 개의 UI 컴포넌트에는 한 개의 컨버터만 적용된다.

이벤트와 리스너(events and listners) - JSF는 자바빈 이벤트/리스너 모델을 사용한다. UI 컴포넌트는 이벤트를 발생시키며 리스너를 등록할 수 있다.

메시지(message) - 사용자에게 다시 보여줄 정보. 백빈, 검증기, 컨버터 등에서 사용자에게 보여줄 메시지나 에러 메시지를 생서앟ㄹ 수 있다.

네비게이션(nvigation) - 어떤 페이지에서 다른 페이지로 이동하는 기능. JSF는 특화된 이벤트 리스너와 연동된 강력한 네비게이션 시스템을 가지고 있다.