2.1.3. 優缺點
優點:
一些開發商開始采用并推廣這個框架作為開源項目,有很多先進的實現思想對大型的應用支持的較好有集中的網頁導航定義
缺點:
不是業屆標準對開發工具的支持不夠復雜的taglib,需要比較長的時間來掌握html form 和 actionform的搭配比較封閉,但這也是它的精華所在。
修改建議
把actionform屬性的設置器和訪問器修改成讀取或生成xml文檔的方法,然后 html form和actionform之間用xml文檔進行數據交換,使之松散耦合,適應數據結構易變化的應用。
2.2. JATO
JATO應用程序框架是iPlanet 應用程序框架的舊名。它是一個成熟的、強大的,基于J2EE標準的面向于開發WEB應用程序的應用框架。結合了顯示字段、應用程序事件、組件層次和以頁面為中心的開發方法、以及MVC和服務到工作者service-to-workers的設計模式等概念。JATO可適用于中、大、超大規模的WEB應用。但是它也不是一個企業層的應用框架,也就是說它不會直接提供創建EJB, WEB services等企業層組件的方法,但用它可以構造出訪問企業層組件的客戶應用。
這個框架功能主要有三部分組成:
iPlanet應用框架核心;
iPlanet應用框架組件;
iPlanet應用框架擴展。
應用框架核心定義了基本接口、對象協議、簡單組件,以及iPlanet應用框架程序的最小核心。包括視圖簡單組件、模型簡單組件、請求分發組件和可重用命令對象。iPlanet應用框架組件利用框架核心定義的基本接口、協議和組件向開發者提供高層的重用組件,這些組件既有與特定視覺效果無關的水平組件,同時也有適應特定實用環境、提高可用性而特意提供的垂直型組件。框架擴展實現了用框架相容的方法訪問非J2EE環境的方法。通常情況下,擴展被框架應用程序用來無縫訪問J2EE容器特定功能。JATO平臺棧圖很清楚地表達了這個情況。
JATO最大的威力在:對于快速開發用戶,你能利用框架組件和擴展提高生產率,對于要求更大靈活性的用戶,你能實現框架核心提供的接口來保持應用的框架兼容性。
JATO最大的威力在:對于快速開發用戶,你能利用框架組件和擴展提高生產率,對于要求更大靈活性的用戶,你能實現框架核心提供的接口來保持應用的框架兼容性。
此圖表示實現一個JATO應用程序,可以簡單地實現控制組件module1Servlet,視圖組件ListCustomersViewBean和模型組件CustomersModuleImpl,以及一個給客戶代理顯示界面的ListCustomers.jsp文件。并清楚地表明這些組件與JATO框架組件的繼承關系。
JATO標簽庫提供了VIEW對象與JSP文件的接口。庫中標簽處理程序負責實現VIEW對象和JSP產生地客戶端文檔的信息同步和交換。這個圖清楚地表達了這種對應關系
2.2.1. MVC分析
前端控制組件接收用戶發來的任何請求,這個可在WEB.xml中指定請求分發組件負責視圖管理和導航,和前端控制組件封裝在ApplicationSERVLETBase一起實現。應用程序開發者需要為每一個子系統(人力資源,財務,CRM等)實現一個此類的繼承。
請求分發組件分發請求給工作者,工作者實現了command接口。應用開發者可以實現這個接口。JATO提供了一個缺省實現:DefaultRequestHandingCommand,這個實現會把請求傳給視圖組件的特定事件。
組合視圖是指視圖組件在顯示給用戶時的層次關系:根視圖是一個ViewBean類的對象字段是一個DisplayField類的對象,容器視圖是一個ContainerView類的對象。視圖組件類的層次關系如下圖:
2.2.2. 優缺點分析
優點:
這種框架的適應范圍大,即提供了底層接口,也有立即可用的組件
具有與客戶端RAD開發工具相似的開發概念如頁為中心(等同于VB的FORM),事件處理等.
對大型的應用支持較好
缺點:
不是業屆標準
目前還沒有開發工具的支持(然JATO已經為工具支持做好了準備)
沒有定義網頁導航,開發者在視圖中自己指定具體的導航URL
修改建議
把眾多的VIEW/MODEL對應修改成xml文檔傳遞數據,加上集中的網頁導航定義
2.3. JSF(JavaServer Faces)
JSF是一個包括SUN在內的專家組正在定義的開發WEB應用用戶界面的框架,JSF 技術包括:
一組API,它實現UI了組件,管理組件的狀態,處理事件,輸入校驗,定義頁面導航,支持國際化和訪問;
一個JSP定制標簽庫實現與JSP的接口。
JSF非常簡單,是一個定義良好的編程模型。利用這個技術,開發者通過在頁面內組合可重用的UI組件,在把這些組件和應用的數據源相連,路由客戶產生的事件到服務器端的事件處理器進行編程。JSP處理了所有幕后的復雜工作,使得開發者把關注重點放在應用代碼上。
2.3.1. STRUTS、JATO和JSF比較
它們之間有部分重疊,但重點不一樣。
STRUTS和JATO都提供了一個MVC式的應用模型,而JSF只在用戶界面上提供編程接口。這意味著前兩者涉及的范圍比后者廣。JSF可以成為前兩者在UI開發的部分。
JSF的規范的發布版將在 2002年底發布,實現可能要比這個時間晚些。另外將會有工具支持這個框架的應用開發。
2.4. WAF
WAF是WEB APPLICATION FRAMWORK的簡稱,是SUN藍皮書例子程序中提出的應用框架。它實現了 MVC和其他良好的設計模式。
2.4.1. 細節分析
2.4.2. 視圖-控制-模型
如圖所示,開發人員編寫的兩個xml配置文件定義了WAF的運作參數。Screendefinition.xml定義了一系列的屏幕(screen)。Mapping.xml則定義了某個動作之后應該顯示的屏幕,但沒有指定屏幕到哪里拿數據。
用戶發出一個HTTP請求(*.screen),由TemplateSERVLET屏幕前端控制組件接收,它提取請求信息,設置request對象CurrentScreen屬性,再把請求發到模版JSP。模版JSP收到請求后,JSP中的Template標簽察看這個當前屏幕,并從屏幕定義文件(Screendefinition.xml)中獲取這個屏幕的具體參數,再生成html返回給客戶。
假設返回給客戶的html中包括了html表單,用戶在輸入一定數據之后提交,發出一個HTTP請求(*.do)。這個請求被MainSERVLET接收,它提取請求信息,察看動作映射文件(mapping.xml),設置處理這個請求的動作對象(HTTPAction對象),交給requestprosessor對象處理。Requestprosessor對象調用動作對象完成任務,如果需要進一步處理,requestprosessor對象會調用WEBclientcontroler對象的事件處理機制。MainSERVLET在處理完請求之后,從屏幕流管理對象那里得到下一個屏幕,并把請求傳給這個屏幕的JSP文件。
值得一提的是WEBclientcontroler事件處理機制最終把HTTP請求的數據傳到了EJBAction對象那里處理。這樣HTTPAction對象和EJBAction對象形成了兩級處理機制,前一級與request對象緊密相關,把數據封裝起來形成一個Event對象,再傳給了EJBAction對象,后者與Request對象無關。這個方式可以形成一個session級別的數據處理機制。下圖顯示了這個方法。HTTPAction1對象處理一個請求,并把數據放到一個狀態SessionBean內,HTTPAction2也如此,當HTTPAction3接收到HTTP請求之后,把控制傳給EJBAction, 后者獲取狀態SessionBean數據,處理請求,成功后清控狀態SessionBean的內容。這個機制非常適應多個輸入頁面才能滿足一個業務的輸入數據的情況(比如購物車)。
2.4.3. 優缺點分析
優點
屏幕導航定義明確
為框架的擴展提供了一個空間
缺點
源碼比較亂,穩定性和可靠性沒人驗證。
只是一個框架軀干,沒有正式的model層,視圖的概念不強
沒有模型到視圖的定義
修改意見
只有一個框架軀干,正為實現自己的應用框架提供了靈活性。沒有僵化的視圖概念,提供了在網頁輸入到模型的擴充接口,比如插入XML數據交換。
優點:
一些開發商開始采用并推廣這個框架作為開源項目,有很多先進的實現思想對大型的應用支持的較好有集中的網頁導航定義
缺點:
不是業屆標準對開發工具的支持不夠復雜的taglib,需要比較長的時間來掌握html form 和 actionform的搭配比較封閉,但這也是它的精華所在。
修改建議
把actionform屬性的設置器和訪問器修改成讀取或生成xml文檔的方法,然后 html form和actionform之間用xml文檔進行數據交換,使之松散耦合,適應數據結構易變化的應用。
2.2. JATO
JATO應用程序框架是iPlanet 應用程序框架的舊名。它是一個成熟的、強大的,基于J2EE標準的面向于開發WEB應用程序的應用框架。結合了顯示字段、應用程序事件、組件層次和以頁面為中心的開發方法、以及MVC和服務到工作者service-to-workers的設計模式等概念。JATO可適用于中、大、超大規模的WEB應用。但是它也不是一個企業層的應用框架,也就是說它不會直接提供創建EJB, WEB services等企業層組件的方法,但用它可以構造出訪問企業層組件的客戶應用。
這個框架功能主要有三部分組成:
iPlanet應用框架核心;
iPlanet應用框架組件;
iPlanet應用框架擴展。
應用框架核心定義了基本接口、對象協議、簡單組件,以及iPlanet應用框架程序的最小核心。包括視圖簡單組件、模型簡單組件、請求分發組件和可重用命令對象。iPlanet應用框架組件利用框架核心定義的基本接口、協議和組件向開發者提供高層的重用組件,這些組件既有與特定視覺效果無關的水平組件,同時也有適應特定實用環境、提高可用性而特意提供的垂直型組件。框架擴展實現了用框架相容的方法訪問非J2EE環境的方法。通常情況下,擴展被框架應用程序用來無縫訪問J2EE容器特定功能。JATO平臺棧圖很清楚地表達了這個情況。
JATO最大的威力在:對于快速開發用戶,你能利用框架組件和擴展提高生產率,對于要求更大靈活性的用戶,你能實現框架核心提供的接口來保持應用的框架兼容性。
JATO最大的威力在:對于快速開發用戶,你能利用框架組件和擴展提高生產率,對于要求更大靈活性的用戶,你能實現框架核心提供的接口來保持應用的框架兼容性。
此圖表示實現一個JATO應用程序,可以簡單地實現控制組件module1Servlet,視圖組件ListCustomersViewBean和模型組件CustomersModuleImpl,以及一個給客戶代理顯示界面的ListCustomers.jsp文件。并清楚地表明這些組件與JATO框架組件的繼承關系。
JATO標簽庫提供了VIEW對象與JSP文件的接口。庫中標簽處理程序負責實現VIEW對象和JSP產生地客戶端文檔的信息同步和交換。這個圖清楚地表達了這種對應關系
2.2.1. MVC分析
前端控制組件接收用戶發來的任何請求,這個可在WEB.xml中指定請求分發組件負責視圖管理和導航,和前端控制組件封裝在ApplicationSERVLETBase一起實現。應用程序開發者需要為每一個子系統(人力資源,財務,CRM等)實現一個此類的繼承。
請求分發組件分發請求給工作者,工作者實現了command接口。應用開發者可以實現這個接口。JATO提供了一個缺省實現:DefaultRequestHandingCommand,這個實現會把請求傳給視圖組件的特定事件。
組合視圖是指視圖組件在顯示給用戶時的層次關系:根視圖是一個ViewBean類的對象字段是一個DisplayField類的對象,容器視圖是一個ContainerView類的對象。視圖組件類的層次關系如下圖:
2.2.2. 優缺點分析
優點:
這種框架的適應范圍大,即提供了底層接口,也有立即可用的組件
具有與客戶端RAD開發工具相似的開發概念如頁為中心(等同于VB的FORM),事件處理等.
對大型的應用支持較好
缺點:
不是業屆標準
目前還沒有開發工具的支持(然JATO已經為工具支持做好了準備)
沒有定義網頁導航,開發者在視圖中自己指定具體的導航URL
修改建議
把眾多的VIEW/MODEL對應修改成xml文檔傳遞數據,加上集中的網頁導航定義
2.3. JSF(JavaServer Faces)
JSF是一個包括SUN在內的專家組正在定義的開發WEB應用用戶界面的框架,JSF 技術包括:
一組API,它實現UI了組件,管理組件的狀態,處理事件,輸入校驗,定義頁面導航,支持國際化和訪問;
一個JSP定制標簽庫實現與JSP的接口。
JSF非常簡單,是一個定義良好的編程模型。利用這個技術,開發者通過在頁面內組合可重用的UI組件,在把這些組件和應用的數據源相連,路由客戶產生的事件到服務器端的事件處理器進行編程。JSP處理了所有幕后的復雜工作,使得開發者把關注重點放在應用代碼上。
2.3.1. STRUTS、JATO和JSF比較
它們之間有部分重疊,但重點不一樣。
STRUTS和JATO都提供了一個MVC式的應用模型,而JSF只在用戶界面上提供編程接口。這意味著前兩者涉及的范圍比后者廣。JSF可以成為前兩者在UI開發的部分。
JSF的規范的發布版將在 2002年底發布,實現可能要比這個時間晚些。另外將會有工具支持這個框架的應用開發。
2.4. WAF
WAF是WEB APPLICATION FRAMWORK的簡稱,是SUN藍皮書例子程序中提出的應用框架。它實現了 MVC和其他良好的設計模式。
2.4.1. 細節分析
2.4.2. 視圖-控制-模型
如圖所示,開發人員編寫的兩個xml配置文件定義了WAF的運作參數。Screendefinition.xml定義了一系列的屏幕(screen)。Mapping.xml則定義了某個動作之后應該顯示的屏幕,但沒有指定屏幕到哪里拿數據。
用戶發出一個HTTP請求(*.screen),由TemplateSERVLET屏幕前端控制組件接收,它提取請求信息,設置request對象CurrentScreen屬性,再把請求發到模版JSP。模版JSP收到請求后,JSP中的Template標簽察看這個當前屏幕,并從屏幕定義文件(Screendefinition.xml)中獲取這個屏幕的具體參數,再生成html返回給客戶。
假設返回給客戶的html中包括了html表單,用戶在輸入一定數據之后提交,發出一個HTTP請求(*.do)。這個請求被MainSERVLET接收,它提取請求信息,察看動作映射文件(mapping.xml),設置處理這個請求的動作對象(HTTPAction對象),交給requestprosessor對象處理。Requestprosessor對象調用動作對象完成任務,如果需要進一步處理,requestprosessor對象會調用WEBclientcontroler對象的事件處理機制。MainSERVLET在處理完請求之后,從屏幕流管理對象那里得到下一個屏幕,并把請求傳給這個屏幕的JSP文件。
值得一提的是WEBclientcontroler事件處理機制最終把HTTP請求的數據傳到了EJBAction對象那里處理。這樣HTTPAction對象和EJBAction對象形成了兩級處理機制,前一級與request對象緊密相關,把數據封裝起來形成一個Event對象,再傳給了EJBAction對象,后者與Request對象無關。這個方式可以形成一個session級別的數據處理機制。下圖顯示了這個方法。HTTPAction1對象處理一個請求,并把數據放到一個狀態SessionBean內,HTTPAction2也如此,當HTTPAction3接收到HTTP請求之后,把控制傳給EJBAction, 后者獲取狀態SessionBean數據,處理請求,成功后清控狀態SessionBean的內容。這個機制非常適應多個輸入頁面才能滿足一個業務的輸入數據的情況(比如購物車)。
2.4.3. 優缺點分析
優點
屏幕導航定義明確
為框架的擴展提供了一個空間
缺點
源碼比較亂,穩定性和可靠性沒人驗證。
只是一個框架軀干,沒有正式的model層,視圖的概念不強
沒有模型到視圖的定義
修改意見
只有一個框架軀干,正為實現自己的應用框架提供了靈活性。沒有僵化的視圖概念,提供了在網頁輸入到模型的擴充接口,比如插入XML數據交換。