عکس فوق یک دید سطح بالا از معماری JSF 2 را نمایش می دهد. دلایل زیادی وجود دارد که باعث می شود معماری JSF ، غنی (rich) و انعطاف پذیر باشد. در زیر به این دلایل می پردازیم:

1- FacesServlet: کلاس servlet اصلی در برنامه های JSF است که شروع پاسخ به تمامی درخواست هایی که از سمت کلاینت به برنامه JSF می آید می باشد و به راحتی می توان آن را تنظیم کرد.
2- JSF به توسعه دهندگان اجازه می دهد از چندین PDL (زبان تعریف رابط کاربری) نظیر JSP یا Facelet استفاده کنند.
3- Renderers: این قسمت معماری وظیفه نمایش کامپوننت ها و قرار دادن مقادیر وارد شده توسط کاربر درون کامپوننت ها را بر عهده دارد.
4- Converters: مکانیزمی برای تبدیل کردن مقادیر وارد شده توسط کاربر می باشد.
5- Validators: مکانیزمی برای اعتبار سنجی مقادیر وارد شده توسط کاربر می باشد.
6- Managed bean و navigation: منطق کاری برنامه درون managed bean ها انجام می شود و همچنین درون آنها چگونگی navigation بین صفحات نیز کنترل می شود.
7- پشتیبانی از AJAX: بصورت توکار JSF 2 از AJAX پشتیبانی می کند.

همانطور که ملاحضه کردید معماری JSF یک معماری کامل است و تمامی جنبه های مهم در برنامه های تحت وب را درون معماری خود جا داده است.

منبع : Beginning Java™ EE 6 Platform with GlassFish™ 3 From Novice to Professional

شاد باشید.