?????????WebWork是由OpenSymphony組織開發(fā)的,致力于組件化和代碼重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,現(xiàn)在的WebWork2.x前身是Rickard Oberg開發(fā)的WebWork,但現(xiàn)在WebWork已經(jīng)被拆分成了Xwork1和WebWork2兩個項目。 Xwork簡潔、靈活功能強(qiáng)大,它是一個標(biāo)準(zhǔn)的Command模式實現(xiàn),并且完全從web層脫離出來。 Xwork提供了很多核心功能:前端攔截機(jī)(interceptor),運行時表單屬性驗證,類型轉(zhuǎn)換,強(qiáng)大的表達(dá)式語言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,處理HTTP的響應(yīng)和請求。WebWork2使用ServletDispatcher將HTTP請求的變成Action(業(yè)務(wù)層Action類), session(會話)application(應(yīng)用程序)范圍的映射,request請求參數(shù)映射。WebWork2支持多視圖表示,視圖部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了對AJAX的支持,這支持是構(gòu)建在DWR與Dojo這兩個框架的基礎(chǔ)之上
Struts
?????????Struts是一個基于Sun J2EE平臺的MVC框架,主要是采用Servlet和JSP技術(shù)來實現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速,在過去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時不用再自己編碼實現(xiàn)全套MVC模式,極大的節(jié)省了時間,所以說Struts是一個非常不錯的應(yīng)用框架。
EasyJWeb是基于java技術(shù),應(yīng)用于WEB應(yīng)用程序快速開發(fā)的MVC框架,框架設(shè)計構(gòu)思來源于國內(nèi)眾多項目實踐,框架充分借簽了當(dāng)前主要流行的開源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其優(yōu)點及精華,利用Velocity作為模板頁面引擎,是一個實現(xiàn)了頁面及代碼完全分離的MVC開發(fā)框架。是一個能實現(xiàn)中小型Web應(yīng)用系統(tǒng)快速開發(fā)的簡易Web框架。
?
EasyJWeb
?????????????EasyJWeb是基于java技術(shù),應(yīng)用于WEB應(yīng)用程序快速開發(fā)的MVC框架,框架設(shè)計構(gòu)思來源于國內(nèi)眾多項目實踐,框架充分借簽了當(dāng)前主要流行的開源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其優(yōu)點及精華,利用Velocity作為模板頁面引擎,是一個實現(xiàn)了頁面及代碼完全分離的MVC開發(fā)框架。是一個能實現(xiàn)中小型Web應(yīng)用系統(tǒng)快速開發(fā)的簡易Web框架。
通過EasyJWeb Tools提供的配套開發(fā)工具,可以實現(xiàn)基于EasyJWeb框架的Web應(yīng)用快速開發(fā),包括常用應(yīng)用軟件的代碼自生成、數(shù)據(jù)庫添刪改查(CRUD)代碼生成、自動頁面模版生成、配置文件管理等。
框架特點:
1、零配文件置支持。以前我們每接觸一個框架,開始總都要被他的配置文件折騰一番。EasyJWeb實現(xiàn)零配置支持,可以不寫一句配置文件就在框架基礎(chǔ)上構(gòu)建你的運用。(適合小型網(wǎng)站系統(tǒng))。
2、簡易的模板頁面設(shè)計支持:放棄使用jsp,使用簡單Velocity腳本語言作為頁面模板。
3、頁面程序完全分離:實現(xiàn)顯示頁面與程序邏輯的完全分離,克服了傳統(tǒng)jsp頁面難于維護(hù)的問題。
4、基于頁面組件的框架。靈活的頁面組件配置,可以直接通過配置文件設(shè)置字段級的事件組件。
5、快速開發(fā)支持:通過EasyJWeb Tools,可以自動生成應(yīng)用軟件模板代碼,定制并管理自己的J2EE代碼模板,代碼生成模板支持最流行的實用Java開發(fā)框架(如hibernate、Spring等)實現(xiàn)快速開發(fā)。
Tapestry?
????????Tapestry是一個開源的基于servlet的應(yīng)用程序框架,它使用組件對象模型來創(chuàng)建動態(tài)的,交互的web應(yīng)用。一個組件就是任意一個帶有jwcid屬性的html標(biāo)記。其中jwc的意思是Java Web Component。Tapestry使得java代碼與html完全分離,利用這個框架開發(fā)大型應(yīng)用變得輕而易舉。并且開發(fā)的應(yīng)用很容易維護(hù)和升級。Tapestry支持本地化,其錯誤報告也很詳細(xì)。Tapestry主要利用javabean和xml技術(shù)進(jìn)行開發(fā)。
Turbine?
???????????Turbine是基于Servlet的框架包,也是開放源代碼Jakarta項目。目前還沒有關(guān)于Turbine的大量文檔。它類似于Struts,但是有一些主要區(qū)別。突出的一點就是它并沒有與JSP耦合。Turbine的特點是它提供了大量可重用的組件。此框架包中包含了大量組件,但是這些組件是離散的。它似乎應(yīng)該給出更多的組件庫,但是由于它缺少文檔,所以很難掌握完整的體系結(jié)構(gòu)。
OpenBlueLab
?????????OpenBlueLab是一個用于構(gòu)建Web2.0 Portal系統(tǒng)的快速開發(fā)框架。其主頁就是采用該框架開發(fā)的一個Demo。Portal布局可以通過UI進(jìn)行配置。Widget將自動組裝,在運行期不需要編寫任何數(shù)據(jù)庫交互代碼就能夠使它們自動實現(xiàn)數(shù)據(jù)感知。基于Ajax與HTML的form也將從XML widget定義自動構(gòu)建。XML widget定義可以從描述信息系統(tǒng)設(shè)計的UML模型快速生成。這個框架讓你只需關(guān)注信息系統(tǒng)的設(shè)計,而form和portal的系統(tǒng)架構(gòu)將自動生成。
Wedge?????????
?????????Wedge是一個基于POJO面向組件的Web框架。它利用運行期代碼生成和習(xí)慣命名來簡化Web應(yīng)用的開發(fā)。Wedge頁面模板是包含一些關(guān)鍵字的簡單xhtml文檔與頁面相對應(yīng)的后臺類是沒有層次之分POJO。在運行期,wedge會生成并編譯一個第三方class,這個class與頁面模板和頁面后臺類相綁定。這個自動生成的class是在一個單獨的class loader中加載,所以當(dāng)頁面模板或頁面后臺類變化時將被丟棄。Wedge在運行期能夠重新加載模板和頁面類的java源代碼,這意味著你可以隨意你頁面類的java源代碼(新增,修改,刪除或重命名方法和屬性),然后只要刷新瀏覽器就可以看到修改后的結(jié)果。
Shale?
???????????Shale是一個基于JSF的web開發(fā)框架。Shale重用了大量的Struts基礎(chǔ)代碼,因此可以稱Struts為它的"父"框架,但Shale是面向服務(wù)架構(gòu),它與Struts最大不同之處在于:Struts與JSF集成,而Shale則是建立在JSF之上。 Struts實質(zhì)上是一個巨大的、復(fù)雜的請求處理器;而Shale則是一組可以以任何方式進(jìn)行組合的服務(wù)。此外Shale加入了一些新的特性比如:
1.與Spring框架相集成可以使用Spring的依賴注入機(jī)制來創(chuàng)建JSF Managed bean。
2.提供一種可選的類似于Tapestry與Facelets使用純HTML來定義視圖。
3.提供測試框架,一組mock object和JUnit test case基類可以幫助測試自身框架的classe和在構(gòu)建在該框架之上的應(yīng)用組件。
4.提供AJAX的服務(wù)端支持。
5.Tiger擴(kuò)展等。
ROMA
????????????ROMA是一個完全基于POJO的Web框架。整個框架采用Ruby On Rails的設(shè)計思想,利用該框架能夠?qū)崿F(xiàn)Ajax數(shù)據(jù)庫Web Apps的快速開發(fā)。
jbullet?
????????jbullet一個基于約定俗成沒有XML的Java開源web框架,保持簡單是它的原則,Struts是它的靈感,RubyOnRails是它的挑戰(zhàn)。jbullet之所以簡單是因為你所要做得只是編寫簡單的Java classe然后把剩下的交給該框架。約定俗成是驅(qū)動因素,JSP標(biāo)簽庫是標(biāo)準(zhǔn)HTML標(biāo)簽的一個鏡像,控制流非常流暢和明了。
jsf-comp
jsf-comp一組JSF組件:
Chart Creator | 用于在JSF頁面中操作JFreeChart |
Client Validators | 用于JSF客戶端校驗 |
Acegi-JSF | JSF版的acegi標(biāo)簽 |
Excel Creator | 用于導(dǎo)出數(shù)據(jù)到excel中 |
OnLoad | 通過頁面訪問代替form提交來運行JSF Action |
?
Pushlets
????????Pushlets是一個基于HTTP的發(fā)布/訂閱框架,它實現(xiàn)了一種能夠直接從服務(wù)端Java對象主動發(fā)送數(shù)據(jù)給瀏覽器端的HTML頁面而不需要使用Java applets或插件的機(jī)制。這個框架當(dāng)前使用兩種方式實現(xiàn):1.在servlet或jsp中將Javascript代碼以流的形式傳遞給一個隱藏的frame。2.采用AJAX實現(xiàn)。
Rhino in Spring
????????????Rhino in Spring這個項目把Rhino JavaScript解釋器與Spring框架相結(jié)合。目的是提供一個把腳本(動態(tài))語言快速開發(fā)的優(yōu)點、靈活與Java平臺和Spring框架的強(qiáng)大功能、高擴(kuò)展性相結(jié)合的系統(tǒng)。這個項目發(fā)布了一個Spring MVC控制器(controller)組件用于把由Web應(yīng)用程序多個web頁面生成的復(fù)雜控制流用JavaScript表示成單一結(jié)構(gòu)的工作流。
2step
?????????2step是一個用于開發(fā)完整Web應(yīng)用程序(包括web服務(wù))的框架。作為一個Servlet框架,它的特性有:訪問控制、logging、I18N、數(shù)據(jù)庫訪問,XML/XSL支持等,還用到Jetty,FOP和jCharts開源項目。該框架提供一個用于輔助開發(fā)的Eclipse插件。
jwebee
我的個人網(wǎng)站