Tolong jelaskan mengenai Cara kerja dari JavaServer Faces

Javaserver Faces berdasarkan model perancangan antarmuka pengguna berbasis komponen, menggunakan berkas XML yang disebut templat view atau view Facelets. Permintaan (request) diproses oleh FacesServlet, yang memuat templat view yang sesuai, membangun tree komponen, memproses berbagai event, dan me-render respons (umumnya HTML) kepada klien. State dari komponen UI (dan beberapa objek lain) disimpan pada setiap akhir request (dinamakan stateSaving), dan dikembalikan pada saat pembuatan selanjutnya dari view tersebut. Ada beberapa jenis penyimpanan state, termasuk penyimpanan state client-side dan server-side.