WebWork
Struts
EasyJWeb
Tapestry
Cocoon
Echo
Turbine
MyFaces
JPublish
Japple
Jaffa
Anvil
SiteMesh
Barracuda
Maverick
Spring MVC
Shocks
WebCream
AppFuse
VRaptor2
Chrysalis
Verge
WebOnSwing
RIFE
Wicket
Beehive
JSPWidget
JNex
WFNM
OPS
![](http://www.open-open.com/resource/von.gif)
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【
EclipseWork:
用于WebWork辅助开发的一个Eclipse插件】
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【
StrutsIDE:
用于Struts辅助开发的一个Eclipse插件】
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
EasyJWeb是基于java技术,应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,框架充分借签了当前主要流行的开源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎,是一个实现了页面及代码完全分离的MVC开发框架。是一个能实现中小型Web应用系统快速开发的简易Web框架。
通过EasyJWeb Tools提供的配套开发工具,可以实现基于EasyJWeb框架的Web应用快速开发,包括常用应用软件的代码自生成、数据库添删改查(CRUD)代码生成、自动页面模版生成、配置文件管理等。
框架特点:
1、 零配文件置支持。以前我们每接触一个框架,开始总都要被他的配置文件折腾一番。EasyJWeb实现零配置支持,可以不写一句配置文件就在框架基础上构建你的运用。(适合小型网站系统)。
2、 简易的模板页面设计支持:放弃使用jsp,使用简单Velocity脚本语言作为页面模板。
3、 页面程序完全分离:实现显示页面与程序逻辑的完全分离,克服了传统jsp页面难于维护的问题。
4、 基于页面组件的框架。灵活的页面组件配置,可以直接通过配置文件设置字段级的事件组件。
5、 快速开发支持:通过EasyJWeb Tools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板,代码生成模板支持最流行的实用Java开发框架(如hibernate、Spring等)实现快速开发。
通过EasyJWeb Tools提供的配套开发工具,可以实现基于EasyJWeb框架的Web应用快速开发,包括常用应用软件的代码自生成、数据库添删改查(CRUD)代码生成、自动页面模版生成、配置文件管理等。
框架特点:
1、 零配文件置支持。以前我们每接触一个框架,开始总都要被他的配置文件折腾一番。EasyJWeb实现零配置支持,可以不写一句配置文件就在框架基础上构建你的运用。(适合小型网站系统)。
2、 简易的模板页面设计支持:放弃使用jsp,使用简单Velocity脚本语言作为页面模板。
3、 页面程序完全分离:实现显示页面与程序逻辑的完全分离,克服了传统jsp页面难于维护的问题。
4、 基于页面组件的框架。灵活的页面组件配置,可以直接通过配置文件设置字段级的事件组件。
5、 快速开发支持:通过EasyJWeb Tools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板,代码生成模板支持最流行的实用Java开发框架(如hibernate、Spring等)实现快速开发。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。【
Spindle:Tapestry辅助开发Eclipse插件】.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Stefano Mazzocchi于1999年1月创建了Cocoon项目,将其作为ASF之下的开放源代码项目。Cocoon的目标是帮助分离内容格式、逻辑和对基于XML网站的管理功能。Cocoon使用XML, Extensible Stylesheet Language Transformations (XSLT), 以及 Simple API for XML (SAX) 技术,以帮助创建、部署和维护XML服务器应用程序。它支持大多数类型的数据源,包括RDBMS、LDAP和文件系统。在Eclipseh下进行开发的
插件
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Echo是为用Java开发Web应用程序提供的一个面向对象,事件驱动的框架。使用Echo 框架来编程类似于使用Swing API来开发应用程序或applets 。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Turbine是基于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别。突出的一点就是它并没有与JSP耦合。Turbine的特点是它提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。它似乎应该给出更多的组件库,但是由于它缺少文档,所以很难掌握完整的体系结构。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
MyFaces是JavaServer(tm) Faces(JSF) Web框架 (JSR 127)的一个实现。JavaServer(tm) Faces Web框架是一个新的实现MVC模式的规范.它可以与Struts框架相媲美甚至的一些特性与观念已经超过了Struts.【
FacesIDE:Eclipse下的一个辅助开发插件】.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
JPublish是一个功能强大的Web发布系统,设计为确保开发者角色的清晰的分离。JPublish 支持多模板引擎,包括Jakarta Apache's Velocity, FreeMarker and WebMacro。JPublish支持众多脚本语言,包括Python, BeanShell, and JavaScript。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Japple是一个建造Web应用程序和服务的快速应用程序开发环境。Japple在Java2平台和开放标准之上建造,和传统方法相比可以让你更快、更容易、更有效地开发和部署Web应用程序。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
是为快速应用程序开发提供的一个企业Java框架。JAFFA 是一个Java Web应用程序开发框架,用基于MVC为基础的Web窗口部件来扩展现存的项目。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Anvil是一个基于Java的为Web程序开发的平台,独立或伺服式都是可部署的。它包括大量功能齐全的面向对象的编程语言。语言的一个子集也可用于一个以tag为基础的模板语言。所有的脚本和模板都被汇编为Java比特代码。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Barracuda是一个HTML DOM Component + Event/Listener结构的框架。根据模板文件或配置文件生成静态Java类,并在代码中使用这些生成类,Barracuda需要用XMLC项目把所有的HTML或WML模板文件,静态编译成DOM结构的Java类,作为页面组件。XMLC会根据HTML元素的id定义,生成相应DOM结点的简便操作方法。Barracuda的事件类也需要用Barracuda Event Builder工具把event.xml编译成Java类,引入到工程中。Barracuda直接用Java类的继承关系映射事件之间的父子层次关系。比如,ChildEvent是ParentEvent的子类。Barracuda的事件分为两类:Request Events(Control Events)和Response Events(View Events)。Barracuda事件处理过程类似于Windows系统消息队列的处理机制。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Maverick是一个轻量而完备的MVC Model 2框架。Maverick的Action称作Controller。Controller只接受一个ControllerContext参数。request,response, servlet config, servelt context等输入信息都包装在ControllerContext里面,而且Model也通过ControllerContext的model属性返回。整个编程结构清晰。但由于ControllerContext只有一个model属性可以传递数据,程序员必须把所有需要的数据都打包在一个对象里面设置到model属性里。这种麻烦自然而然会导致这样的可能用法,直接把Controller本身设置为model,这又回到了Controller(Action)和Model一体。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Spring MVC是结构最清晰的MVC Model 2实现。它的Action也不叫Action,而是称做Controller;Controller接收request, response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在其它的Web Framework中,Action返回值一般都只是一个View Name;Model则需要通过其它的途径(如request.attribute,Context参数,或Action本身的属性数据)传递上去。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Shocks 是一个开放源码的开发框架,目的是减少 Java Servlet 应用的复杂性。Shocks 并不是 MVC 模式的开发框架,而是采用下一代的体系结构,明确分开了内部各个组件的角色。该项目目前还不够成熟,但值得关注。这里只是简单介绍,如果你要快速了解 Shocks,请阅读 Shocks 的 FAQ,里面讲解了 Shocks 与 Struts,Webwork,Spring 的关系和差异。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
WebCream提供基于Java应用程序和Applet的web GUI,允许开发人员利用AWT和Swing实现GUI前端应用程序,同时自动地使HTML访问该应用程序。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL)于一身的Web开发框架。AppFuse提供了Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用户管理、根据不同的用户可以展现不同的菜单.J2EE开发者也可以在此基础上开发加入自己的功能模块。利用这个框架可以大幅度的提高开发速度。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
VRaptor2是一个MVC与IOC的Web框架.它采用了许多框的思想包括:JBoss Seam,Stripes,Webwork,Hibernate Annotations等。VRaptor2充分利用Java5注释使得可以通过简单的方式来处理Web编程。你的商业逻辑类不需要与javax.servlet API联系,并且与其它框架相比它只需要很少配置。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Chrysalis是一个Java Web开发框架.它有一个不同于大多数MVC Web框架的地方.Chrysalis的控制器类跟正常的Java类一样有着多个方法,客户端请求的URLs被映射到这些控制器方法.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Verge框架是一个开源J2EE应用程序框架完全采用Java开发只使用到标准的J2EE APIs.这个开源项目的目的为开发企业应用程序提供一个非常灵活和可扩展的框架.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
WebOnSwing是一个革命性的多环境应用程序框架.它允许你创建web 应用程序并可用同样的方式开发一个桌面程序.它不需要使用Jsp文件,特殊的标签,XML文件, requests, posts等,所有的都是Java与直接来自图形设计的HTML文件.这个框架使用Swing组件来构造和处理HTML页面,并允许使用MVC设计模式.所有在Web上的工具都可以由Swing 提供.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
RIFE为开发和设计Web应用程序提供了另外一种途径。它基于Java平台构建,但它提供了所有需要的工具和AIPs用统一的风格,快速地实现所有web程序各开发角色之间的任务联系。RIFE被设计成在整个开发周期中完全分离了开发角色之间的任务,每个developer,dba和designer只需关注它们自己的任务,整个开发工作随时都可以很容易的与其它团队的工作相结合,使得这样子开发出来的将是一个松耦合的健壮的系统。RIFE由许多标准的组件组成,它们包括:
*Web程序引擎
*结合Web扩展
*多格式模板引擎选择(html, xml, sql, java, txt, ...)
*支持内容导出(比如导出为XSLT格式)
*验证框架
*数据库查询构建器
*简单的持久层
*JDBC优化与连接池
*可配置框架等。
用它可以轻松的解决Http's无状态连接问题与CGI的接口。这个框架已经成功的应用在许多网站上如: Bla-bla List, Netwerk, Caosity, Dag Allemaal, GreenEnergy等。
*Web程序引擎
*结合Web扩展
*多格式模板引擎选择(html, xml, sql, java, txt, ...)
*支持内容导出(比如导出为XSLT格式)
*验证框架
*数据库查询构建器
*简单的持久层
*JDBC优化与连接池
*可配置框架等。
用它可以轻松的解决Http's无状态连接问题与CGI的接口。这个框架已经成功的应用在许多网站上如: Bla-bla List, Netwerk, Caosity, Dag Allemaal, GreenEnergy等。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。一个结合Eclipse工具的
Demo可以引导你如何利用Wicket来发开Web应用程序。
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
Beehive用于简化Java 2 Platform, Enterprise Edition(J2EE)以及Web服务编程。
Apache Beehive支持以下功能:
*Java Page Flow(JPF)技术,也称为(NetUI)
*轻量级的组件框架
*基于Java Specification Request(JSR)181的Web 服务
Apache Beehive支持以下功能:
*Java Page Flow(JPF)技术,也称为(NetUI)
*轻量级的组件框架
*基于Java Specification Request(JSR)181的Web 服务
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
JSPWidget是一个Jsp框架,它提供了事件驱动,视图状态保留(view state retained),服务端GUI控制来使得JSP开发能够像在传统的窗体客户端与基于客户端的web应用程序中一样直观.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
JNex是实现MVC设计模式的纯Java框架.它可以使用三种视图(view):Swing,HTML,和Canoo ULC.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
WebFlow Navigation Manager (WFNM)是一个轻量级的Web框架.它允许WebFlow定义,服务端历史向导(navigation history),自动动Session清除.WFNM框架把web应用程序分离几个WebFlow,服务端保持访问过的页面和WebFlow的历史记录,可以动态地返回到访问过的页面与WebFlow.
![](http://www.open-open.com/resource/icon_1.gif)
![](http://www.open-open.com/resource/von.gif)
OPS(Orbeon PresentationServer)是一个开源的基于J2EE平台且是以XML为中心的Web框架.OPS是围绕XHTML, XForms,XSLT,XML pipelines,与Web Services进行构建的.可以利用OPS来开发检索,处理,表达XML数据的应用程序.不像其它流行Web框架如Struts或WebWork,它们都是基于Java对象与JSP的,OPS是基于XML文档与XML技术.这种结构将为处理,表达,检索以XML为格式的信息提供一个更好的方案,并且几乎是在实现你表达层的时候不需要写任何Java代码.