下圖是JSF處理請求時的每個階段與簡單說明,起始狀態即使用者端發出請求時,終止狀態則相當于繪制器發出響應時:

扣除事件處理,JSF總共必須經過六個階段:
對于選擇的頁面如果是初次瀏覽則建立新的組件樹。如果是會話階段,會從使用者端或服務器端的數據找尋數據以回復每個組件的狀態并重建組件樹,如果不包括請求參數,則直接跳過接下來的階段直接繪制響應。
- 套用申請值(Apply
Request Values)
每個組件嘗試從到來的請求中找尋自己的參數并更新組件值,在這邊會觸發ActionEvent,這個事件會被排入隊列中,然后在喚起應用程序階段之后才會真正由事件處理者進行處理。
然而對于設定immeduate為true的命令(Commamnd)組件來說,會立即處理事件并跳過之后的階段直接繪制響應,而對于設定immediate為true的輸入(Input)組件,會馬上進行轉換驗證并處理值變事件,之后跳過接下來的階段,直接繪制響應。
- 執行驗證(Process
Validations)
進行轉換與驗證處理,如果驗證錯誤,則會跳過之后的階段,直接繪制響應,結果是重新呼叫同一頁繪制結果。
- 更新模型值(Update
Model Values)
更新每一個與組件綁定的backing bean或模型對象。
- 喚起應用程序(Invoke
Application)
處理動作事件,并進行后端應用程序邏輯。
使用繪制器繪制頁面。
如果您只是要「使用」JSF,則您最基本的只需要知道「執行驗證」、「更新模型值」、與「喚起應用程序」這三個階段及中間的事件觸發,JSF參考實作將這三個階段之外的其它階段之復雜性隱藏起來了,您不需要知道這幾個階段的處理細節。