工作这两年一直在从事Eclipse 插件开发的工作,想学习一下Web开发,所以这段时间一直在寻找心目中理想的Java Web开发框架,目前有众多的Java Web 应用框架可供我们选择,这也让我(们)欢喜让我忧:欢喜的是可以从众多的框架中选择自己最喜欢的,忧的是不知道你目前正在努力研究的这个框架会不会在下个项目中使用!
我使用过JSP、JSF、Structs、Spring MVC、GWT、Scala Lift、Eclipse RAP、Wicket,除了Eclipse RAP外其他的没有展开很深入的了解,只是用这些不同的框架做同一件事然后进行比较,得出下面的结论(个人观点,仅供参考):
首先单纯使用JSP来开发项目需要考虑的东西太多,开发效率不高。 既然有更圆的免费轮子,干嘛不用?
JSF的开发理念是组件开发,但组件开发没有一个好用的IDE开发工具怎么行,OperaMasks Studio目前觉得还不是非常的好用,我用OperaMasks框架做了一个简单的页面(也就是使用了它的TabLayout布局而已,外加一点文字),居然需要下载差不多800kb大小的文件,而且开发的过程中非常的小心,千万不要出差错,如果对JSF原理不是很熟悉的话,挑错的过程很痛苦。很难对JSF组件进行个性化。虽然说JSF的Sun定义的JEE标准,但有时"标准"这东西不是灵丹妙药,比如中国有这么多的股市专家,在网络、电视上指点股市,然而还是有很多听信了专家的话的股民也没有赚到多少钱。
Structs 的架构设计的比较简单,使用基于控制器导航和页面导航,也很容易扩展,而且与FreeMarker结合可以很容易的自定义标签库,非常的方便,不过Structs 1.X配置的步骤太繁琐了,需要定义对HTTP请求和响应的映射和所有的ActionForm对象等。Structs 2.X好像有所改观,但是目前为止Structs 2.x的参考文档好像不多,应用也不广.
Spring MVC的架构设计的非常优秀,可以和其他框架比如JSP、JSTl、FreeMarker、Tiles方便的进行集成,提供了强大的依赖注入功能,不过要想使用它需要先配置一大堆的XML文件,这我可不喜欢,而且对AJAX支持不够,这让它损失了很多用户。
GWT全名叫Google Web Toolkit,从名字上可以看出它目前定位为工具集,不是框架,单纯使用GWT开发Web应用程序好像不是很顺手。
Lift是基于Scala的一种Web开发框架,它的假想竞争对手是基于Groovy的Grails,不过目前来说还不是很成熟,知名度也不高,不过参考Scala的发展趋势,Lift应该很有发展的潜力,值得关注。
其实我觉得Eclipse RAP 框架非常的不错,是基于Qooxdoo的AJAX框架,从架构到实现,都非常的优秀,支持OSGI,和插件管理,可以像开发RCP一样开发Web程序,从RCP迁移到RAP也不需要费很大周折,不过目前RAP面对的一个问题是系统的运行速度(如果摩尔定律仍然有效并且也能用于网络宽带的发展速度上的话,那么RAP绝对是一门值得投资的技术)。国外也有公司已经开发出了RAP的商业产品,我试用了下,非常的惊艳非常的棒.
现在轮到Wicket了,Wicket 是 Sun公司的Swing UI小组开发出的一种构建和测试动态 Web 页面的简化框架,是一种开源、轻量、基于组件的框架,只使用Java和HTML代码,构建在Servlet API 之上,Wicket通过基于HTML的模板来界定HTML 页面设计人员和 Java 开发人员之间的角色界线.模板可使用任何的HTML设计工具生成.,也就是说Wicket可以让你有更多的精力放在应用程序的业务逻辑的实现上.如果你有SWT/Swing的开发经验,对其他的Web框架知道的比较少又像向Web开发这方面发展的话,那么Wicket一定非常的适合你。而且Wicket的性能还不错.提到Wicket就不得不提一下 Tapestry,这两个框架很多地方相似,你可以在网上看到Tapestry PK Wicket 的帖子,不过有人说"Wicket是重构后的Tapestry".现在你知道该选谁了吧.当然Wicket也有缺点,要掌握Wicket需要了解Java,有面向对象编程思想的话掌握Wicket很容易
好了,我已经决定了,要开始研究Wicket了,嗯,还是研究一下它的源代码先.
分享到:
相关推荐
Java Web层框架之比较—比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket.doc
Apache Wicket是一个开源的,基于Java,基于组件的Web应用程序框架。 通过适当的标记/逻辑分离,POJO数据模型以及令人耳目一新的XML缺乏,Apache Wicket使开发Web应用程序变得简单而又愉快。 交换样板,复杂的调试...
Wicket,有一个优秀的Web框架。和Struts和Webwork类似的Java WEB开发框架。优点在于对HTML和业务代码进行了有效的分离(流行的WEB框架大多如此)。基于规则的配置(有效减少了XML配置文件的使用,与Spring相比,...
Wicket是一个基于Java的Web开发框架,与Struts,WebWork,Tapestry类似。其特点在于对Html和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了XML等配置文件的使用),学习曲线较低(开发...
Java 的 Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向抽象实现请求和响应的...
3.我为什么要学习Wicket? 3.1。我们都喜欢意大利面:-) ... 3.2。面向组件的框架 - 概述 3.3。面向组件的Web开发框架的优点 3.4。Wicket与其他面向组件的框架相比 威克特说“你好世界!” 4.1。Wicket分发和模块 4.2...
Wicket 是一个 Java 语言的 Web 开发框架,与 Struts,WebWork,Tapestry 相类似。 其特点在于对 Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了 XML 等配置文件的使用),学习...
简单点说,它是一个基于Java 的Web开发框架,与Struts,WebWork, Tapestry相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合 作),基于规则的配置 ( 减少了 XML 等配置文件的使用 ) ,...
Wicket是什么 简单点说,它是一个基于JAVA的WEB开发框架,与Struts ,WebWork,Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工 作),基于规则的配置 减少了XML等配置文件的使用 ...
术语项目是使用 SQL 数据库的 Java Web 应用程序。 项目必须使用框架。 Wicket 所需的库已包含在此项目中。 Q4Music 是一款基于网络的游戏,让用户可以进行测验并邀请他们的朋友参加相同的测验。 此外,它还有一个...
将WAR文件从wicked-forms-showcase-wicket7/build/libs文件夹中wicked-forms-showcase-wicket7/build/libs到Tomcat的webapp目录中(您可能希望将其重命名为showcase.war ) 在浏览器中打开localhost:8080/ 包括在...
Web 应用程序框架。 拥有十多年的历史,它仍然很强大,并有一个坚实的未来。 目录 通用信息 - 检票官方网站。 - Wicket 上的官方镜像。 - Wicket 的官方账号。 - Wiki 上关于 Wicket 的官方知识库。 - Wicket 的官方...
Wicket前生后世篇 Wicket是什么?简单点说,它就是一个基于...但是这个事件对我的第一感觉就是晕,第二感觉就是特别的晕,虽然目前Java世界的Web框架一通混战,但这样一个联盟,所给出的东西很可能是第二个EJB。
Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。 Wicket使用原生的HTML元素,通过标签<wicket:id>声明为特殊的...
简单点说,它是一个基于Java 的Web 开发框架,与Struts,WebWork, Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合 作),基于规则的配置(减少了XML 等配置文件的使用),学习...
简单点说,它就是一个基于Java 的Web 开发框架,与Struts,WebWork,Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了XML 等配置文件的使用),学习...
简单点说,它就是一个基于Java 的Web 开发框架,与Struts, WebWork,Tapestry相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员 和美工的合作),基于规则的配置(减少了XML 等配置文件的使用)...
Apache Wicket 是创新型 Java Web 应用程序框架。它通过彻底地分离开发人员与设计人员的角色,帮助简化 Web 应用程序开发。它将允许您从视图层中删除逻辑代码,消除使用 JavaServer Page (JSP) 的需求,提供以简单...