یکی از فریم ورک های جاوا JavaServer Faces با معماری سه لایه‌ است. این فریمورک به شما کمک می‌کند تا بتوانید رابط‌های کاربری مبتنی بر کامپوننت و همچنین مبتنی بر Event را با آسانی بیشتری ایجاد کنید. این فریمورک نیز مانند دیگر فریمورک ها از پلتفرم Java EE بهره می‌گیرد. کامپوننت‌های ساخته شده با استفاده از JavaServer Faces قابلیت استفاده مجدد را دارند و همچنین Portable هستند، از این رو شما می‌توانید در پروژه‌های مختلف به خوبی از آن‌ها استفاده کنید.

اولین نسخه از این فریمورک به عنوان سیستم templating خود از JSP یا JavaServer Pages استفاده می‌کرد، اما نسخه کنونی آن یعنی نسخه دوم، از سیستم Facelets استفاده می‌کند که در نهایت به شما این امکان را می‌دهد تا بتوانید رابط‌های کاربری مدرن‌تری را ایجاد کنید. در کنار این سیستم شما می‌توانید از XUL یا XML User Interface Language نیز بهره بگیرید.


برخی از ويژگی های فریم ورک JavaServer Faces در زیر بیان شده است:

پایدار و قابل اعتماد است.
استانداردها در این فریم ورک رعایت می شود زیرا JavaServer Faces از طرف Java Community Process مدیریت می‌شود.
توانایی در ایجاد رابط‌های کاربری حرفه‌ای دارد.
فرآیند یادگیری سخت دارد.
مدل Life-Cycle این فریم ورک باعث می‌شود که برقراری ارتباط بین کامپوننت‌های مبتنی بر JSF و غیر-JSF پیچیده و سخت باشد.