小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JSF VS Tapestry 全面比較(一)

 chinaquake 2006-09-14

  目前應(yīng)用很廣泛而且也很成熟的Struts應(yīng)用開(kāi)發(fā)框架,在未來(lái)幾年里將會(huì)逐漸淡出,其基于Action(action-based)的開(kāi)發(fā)模型也將被活躍的java社區(qū)所推崇的新的開(kāi)發(fā)模型所替代,對(duì)于java開(kāi)源社區(qū)來(lái)說(shuō),追求完美是很多人的理想。在2000年初誕生的Struts以及其他類似的 MVC(Model View Controler)框架主要都是以操作為中心,且都是無(wú)狀態(tài)的開(kāi)發(fā)模型,而現(xiàn)在,基于組件(component-based)和事件驅(qū)動(dòng)(event- driven)的開(kāi)發(fā)模型逐漸流行起來(lái),在很多時(shí)候都成了Struts的有利競(jìng)爭(zhēng)者,這其中來(lái)自jcp的jsr127-JavaServer Faces(JSF)以及來(lái)自apache的Tapestry是其中的佼佼者。

  在這篇文章中,我們將把這兩種框架JSF和Tapestry進(jìn)行詳細(xì)的對(duì)比。我們的比較將涉及到兩種框架的設(shè)計(jì)、運(yùn)行環(huán)境以及如何開(kāi)發(fā)。比較的目的在于讓讀者了解這兩種框架各自的優(yōu)缺點(diǎn),以便于在自己的項(xiàng)目中,根據(jù)實(shí)際情況,選擇合適的框架。該文章的內(nèi)容基于JSF1.1和Tapestry3.0.3 (在個(gè)別地方由于需要會(huì)談到Tapestry4.0)。


  JSF和Tapestry簡(jiǎn)介
    
  JSF源于JCP(Java Community Process)的JSR127規(guī)范。Sun公司自己同時(shí)也對(duì)該規(guī)范提供了一個(gè)實(shí)現(xiàn),目前的版本是1.1,而且該項(xiàng)目的設(shè)計(jì)者之一正是Struts的作者 Craig McClanahan。另外一個(gè)JSF的實(shí)現(xiàn),就是Apache的一個(gè)項(xiàng)目MyFaces。目前,幾個(gè)主流的java開(kāi)發(fā)工具廠商都在其java ide中提供了對(duì)jsf的支持,比如Sun、Oracle、IBM、Borland等,而且JSF的后續(xù)版本JSF1.2也將成為J2EE5.0的一個(gè)組成部分。
    
  Tapestry最初于2000年在SourceForge注冊(cè),來(lái)自于Apple WebObjects,隨后,于2003年成為Apache的一個(gè)項(xiàng)目。與JSF不同的是,Tapestry并不是某一個(gè)jsr規(guī)范的實(shí)現(xiàn),它僅僅是一個(gè)開(kāi)源項(xiàng)目,當(dāng)前版本是3.0.3。4.0版本預(yù)計(jì)也將在后面的一段時(shí)間內(nèi)推出。
  JSF和Tapestry作為MVC框架,在一些基本特性上是非常類似的:

  •     它們都讓開(kāi)發(fā)者不再直接與Servlet API打交道,而是讓開(kāi)發(fā)者在一個(gè)更高的抽象層上思考問(wèn)題;
  •     它們都將web頁(yè)面上的顯示元素綁定到一個(gè)java對(duì)象的某個(gè)屬性上,這些屬性可能是字符串、數(shù)字、日期或者其他類型,并且由該對(duì)象來(lái)維護(hù)其狀態(tài)。用戶在頁(yè)面上的交互行為(比如用鼠標(biāo)點(diǎn)擊一個(gè)按鈕或者鏈接)都直接映射為java類中的一個(gè)事件處理方法;
  •     兩種框架都支持組件式的開(kāi)發(fā)方式,并且開(kāi)發(fā)的組件可被其他開(kāi)發(fā)者重用。兩種框架都自帶一個(gè)標(biāo)準(zhǔn)組件庫(kù),提供web開(kāi)發(fā)的常見(jiàn)通用功能。

  在下面的章節(jié)里面,我們將會(huì)看見(jiàn)這兩個(gè)框架在各自的實(shí)現(xiàn)方式上是有很大區(qū)別的。對(duì)于大多數(shù)程序員來(lái)說(shuō),基于兩種框架做開(kāi)發(fā),將是非常不同的兩種體驗(yàn)。

  Sidebar: 例子程序
  在下面本文提供了一個(gè)例子程序,該程序的代碼大部分都將在這片文章中做出詳細(xì)的描述。這個(gè)程序主要就是一個(gè)管理個(gè)人假期的工具,它的主要功能包括:
  * 一個(gè)home界面, 列出所有登記的假期,包括假期開(kāi)始時(shí)間、天數(shù)以及一下描述信息;
  * 一個(gè)detail界面,用于瀏覽某一登記假期的詳細(xì)信息;
  * 一個(gè)new界面,用于添加一個(gè)假期信息。

  下面這幅圖展示了該程序的主體流程和功能:


  你可以從下列地址下載該程序基于不同框架的源代碼:
  J

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多