JavaServer Faces (JSF) este un şablon pentru aplicaţii web pe bază de Java pentru simplificarea dezvoltării interfeţelor pentru utilizator pentru aplicaţii Java EE. Spre deosebire de şabloanele web MVC bazate pe solicitări, JSF foloseşte o abordare bazată pe componente. Starea componentelor UI este salvată când clientul face o solicitare pentru o nouă pagină şi restaurată când solicitarea este returnată. JSF foloseşte JavaServer Pages (JSP) pentru tehnologia de afişare, dar poate adapta şi alte tehnologii (precum XUL). JSF include:

În perioada de început a aplicaţiilor client-server, fiecare aplicaţie avea propriul său program client care servea ca interfaţă utilizator şi trebuia să fie instalat separat pe fiecare calculator personal al utilizatorului. O actualizare pe server a aplicaţiei necesita o actualizare a fiecărei aplicaţii client instalate, adăugând costuri suplimentare şi scîzând productivitatea.
În contrast cu acestea, aplicaţiile web folosesc documente web scrise în formate standard precum HTML (şi mai recent XHTML), care sunt suportate de o varietate de browsere web.