理想的Java Web开发框架

开发 后端
本文对JSP、JSF、Struts、Spring MVC、GWT、Scala Lift、Eclipse RAP和Wicket这一系列Java Web开发框架进行了简单的分析,并认为Wicket是比较合适自己的。

理想的Java Web开发框架,应该有一个好的IDE开发工具,架构设计清晰简单,容易扩展,使用方便,等等等等。现在Java Web开发框架也不少了,到底哪个好用,下面来大致分析一二:

我使用过JSP、JSF、Struts、Spring MVC、GWT、Scala Lift、Eclipse RAP、Wicket,除了Eclipse RAP外其他的没有展开很深入的了解,只是用这些不同的框架做同一件事然后进行比较,得出下面的结论(个人观点,仅供参考):

Java Web开发框架列表

首先单纯使用JSP来开发项目需要考虑的东西太多,开发效率不高。 既然有更圆的免费轮子,干嘛不用?

JSF的开发理念是组件开发,但组件开发没有一个好用的IDE开发工具怎么行,OperaMasks Studio目前觉得还不是非常的好用,我用OperaMasks框架做了一个简单的页面(也就是使用了它的TabLayout布局而已,外加一点文字),居然需要下载差不多800kb大小的文件,而且开发的过程中非常的小心,千万不要出差错,如果对JSF原理不是很熟悉的话,挑错的过程很痛苦。很难对JSF组件进行个性化。虽然说JSF的Sun定义的JEE标准,但有时"标准"这东西不是灵丹妙药,比如中国有这么多的股市专家,在网络、电视上指点股市,然而还是有很多听信了专家的话的股民也没有赚到多少钱。

Struts 的架构设计的比较简单,使用基于控制器导航和页面导航,也很容易扩展,而且与FreeMarker结合可以很容易的自定义标签库,非常的方便,不过Struts 1.X配置的步骤太繁琐了,需要定义对HTTP请求和响应的映射和所有的ActionForm对象等。Struts 2.X好像有所改观,但是目前为止Struts 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很容易

以上就对各种Java Web开发框架进行了一些大致的分析,希望对大家有所帮助。

【编辑推荐】

  1. Struts 2:***的AJAX支持
  2. 学习比较Struts2和Struts1:Struts2完胜
  3. Struts2.1.6的环境搭建与示例
  4. iBATIS Spring Struts2整合实例浅析
  5. Struts+WebWork简单示例
责任编辑:yangsai 来源: vwpolo的博客
相关推荐

2015-06-24 09:25:51

应用框架

2009-06-18 12:06:30

Java Web开发框

2016-01-27 09:39:13

JoobyJava Web流程

2010-05-19 14:38:11

Web开发框架Web层

2009-06-25 17:14:59

JSF框架

2009-05-12 09:54:09

JavaRestCoC

2022-04-13 08:00:00

Hilla开发Java

2020-03-30 09:00:00

WebJava框架

2021-02-18 09:54:37

数据湖框架数据

2009-06-22 17:59:24

JSF基于Java的Web

2024-03-11 10:19:30

Plasmo浏览器Web

2010-11-17 12:59:52

2015-08-25 09:53:22

Web开发Python框架

2015-07-13 10:41:30

Web开发 Python 框架

2014-03-28 15:36:43

移动WebJavaScript开发框架

2009-09-27 09:41:21

Web开发

2017-05-23 14:20:17

WebPython框架

2012-01-13 11:02:27

JavaWebOpenXava

2011-12-16 09:49:38

Java

2011-11-25 14:29:08

JavaWeb开源框架
点赞
收藏

51CTO技术栈公众号