打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JAVA Web框架比较

JAVA Web框架比较

JAVA 2007-08-10 14:10:37 阅读336 评论0   字号: 订阅

 

Struts

JSF

Tapestry

ASP.NET

Architecture

跳转模型

MVC

跳转模型

Front Controller+组件化编程

页面模型

Page Controller+组件化编程

页面模型

Page Controller+组件化编程

Programming Model

业务逻辑:

Struts1中需要继承基类;Struts2POJO的模型;

页面逻辑:

有很不同实现,可以是JSP,也可以是通过模版引擎渲染。

业务逻辑:

POJO的编程风格;

页面逻辑:

主要是JSP,也可以用HTML风格。

业务逻辑:

Taperstry4需要继承基类;但Taperstry5就是POJO风格;

页面逻辑:

普通的HTML

业务逻辑:

需要继承基类;

页面逻辑:

类似JSP,但不同的是,该页面实际是业务逻辑类的子类。

Request Process

 

由官方定义的六个步骤组成;

取决于Engine Service

由官方定义的15个步骤组成。

Navigation

PathAction绑定,需要配置文件解析。

通过faces-config.xml配置文件完成。

URL是全局的,没有额外的配置文件;

除非显式跳转,所以行为都在本Page上。

而跳转分两种:

1. DirectLink写在页面上

2. 在代码逻辑中定义页面跳转逻辑。

Tapestry类似。

Event handling

页面定义事件发起;两种方式参数传递方式:一种分离传递;另一种通过FacesContext

页面定义事件发起;直接赋予参数,没有参数个数限制;除此外还有内置的生命周期相关的event

类似Swing的事件控制方式。

Component State

没有状态维护机制,每次request都从建组件。

提供组件状态的维护机制。

提供组件状态的维护机制。

Component Dev

基于JSP Tag的开发方式。

开发方式类似Page, 逻辑代码和页面分离,页面输出使用HTML

开发方式类似Page;逻辑代码和页面分离;页面输出可以复用已有的组件

View

有很不同实现,可以是JSP,也可以是通过模版引擎渲染。

主要是JSP,也可以用HTML风格。

HTML

类似JSP页面。

Validation and Conversion

 

提供了多种方式支持,但客户端验证支持不好,同时在form一级的支持不好,通常需要项目自己定制。

同样提供多种方式支持;此外提供客户端的Validation;天然地支持form一级支持。

类似Tapestry

I18N

较好的支持。

较好的支持。

很好的支持,额外提供预览功能。

 

Testability

Struts1的测试不容易,Strut2测试容易简单。

测试支持简单容易。

Tapestry4的测试不容易,不过Tapestry5的测试可以很简单。

不容易测试。

Extensibility

 

良好

良好

良好

Industry Momentum

广泛使用,目前各种资源都不错。

JSF业界标准,业内厂商支持会比较多,不过未必不会出现EJB2的结局。

应用范围小于Struts,之前的版本学习曲线太高。

微软地主老财,有大把的钱;此外,大量的第三方公司提供支持。

Migrate

 

Struts迁移不难;

Struts或者JSP迁移难度较大些。

 

 

 

Java Web框架种类繁多,花样迭出,主流一点的就有StrutsWebworkSpringMVCJSFTapestry,至于非主流的就更加不计其数了。还有很多基于这些框架的衍生框架,例如基于Strutsbeehive,基于JSFJBoss Seam,基于JSFMyFacesShale等等。对于开发人员来说,过多的选择是一种沉重的负担,不但需要花更多的时间去学习,也需要更多的时间去维护基于不同框架的代码。

由于面临着dotnet统一的web框架webforms以及异军突起的rails的强势挑战,Java业界也感受到竞争的丝丝寒意,这不,众多Java Web框架的核心开发人员终于可以坐到一起,商量着Web框架的统一和互操作的问题了。

http://opensource2.atlassian.com/confluence/oss/display/WAG/Home

由众多Java Web框架的开发人员组成的一个团队……Java Web Alignment Group,这其中包括了StrutsWebworkJSFBeehiveJBoss SeamSpring MVC等众多框架核心开发人员组成,目标则是加强交流和合作,促进各个Web框架之间的协作,给Java开发人员提供尽量方便的解决方案。

他们讨论的内容在Yahoo Grouphttp://groups.yahoo.com/group/java_web_alignment/
加入这个mailist需要批准。

目前这个Group的讨论已经得到了一个显著的进步:strutswebworkbeehive的合并!

我们知道Web框架主流上分为两类:MVC框架和事件响应机制框架。MVC框架有StrutsWebworkSpring MVC,以及一些基于这些框架的框架,如Spring Webflow Beehive等等;事件框架有JSFTapestryEcho等。除此之外,还有一些连接两者的框架,如Struts Shale等等。

经过一段时间的讨论,StrutsWebworkbeehive三方宣布合并,共同发展下一代MVC模式的MVC框架……Struts Ti。它将主要以Webwork为核心,集成Beehiveannotataionpageflow功能,推向Struts用户群体,并且加强和 JSF的集成能力。

这次合并的前景是值得期待的,在MVC领域,主流的选择将在Struts TiSpring MVC之间。不过从目前的情况来看,Struts Ti不会进一步和Spring MVC进行合并。Spring MVC的开发人员希望保护现有的Spring MVC合作伙伴和客户,以及在Spring webflow上面的巨大投入。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java开源Web开发框架分类列表
STRUTS 2 概述(节选)
Spring MVC初探
标签库,永恒的争论话题 JavaEye专栏频道
Java知识拾遗:三大框架的技术起源
MVC框架的困惑
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服