下圖展示了JSF是如何適配到這種三層結(jié)構(gòu)場景中的。

J2EE 應(yīng)用的Web層,其基礎(chǔ)為發(fā)送到瀏覽器的HTML。HTML是通過JSP和/或Servlet動態(tài)生成的。JSP和Servlet將應(yīng)用邏輯委托給樸素Java對象(Plain Old Java Object--POJO),再由這些POJO(應(yīng)用層)使用JDBC同數(shù)據(jù)庫打交道來保存和取回應(yīng)用的數(shù)據(jù)。
不過,在企業(yè)級的應(yīng)用中,應(yīng)用層將由EJB來實(shí)現(xiàn)(作為會話Bean 或作為實(shí)體Bean,亦或兼而有之)。
如果將EJB納入其中的話,Web應(yīng)用就由四層組成:Web、JSP/Servlet、EJB和數(shù)據(jù)庫。JSF可以放到JSP/Servlet層,并提供基于組件的方法來建立應(yīng)用。JSF提供了一種建立用戶界面以及向下一層(即EJB層)委托業(yè)務(wù)處理的方法。
下圖為典型 JSF 應(yīng)用中的四層配置。
