工作这两年一直在从事Eclipse 插件开发的工作想学习一下Web开发所以这段时间一直在寻找心目中理想的Java Web开发框架目前有众多的Java Web 应用框架可供我们选择这也让我(们)欢喜让我忧:欢喜的是可以从众多的框架中选择自己最喜欢的忧的是不知道你目前正在努力研究的这个框架会不会在下个项目中使用!
我使用过JSPJSFStructsSpring MVCGWTScala LiftEclipse RAPWicket除了Eclipse RAP外其他的没有展开很深入的了解只是用这些不同的框架做同一件事然后进行比较得出下面的结论(个人观点仅供参考):
首先单纯使用JSP来开发项目需要考虑的东西太多开发效率不高 既然有更圆的免费轮子干嘛不用?
JSF的开发理念是组件开发但组件开发没有一个好用的IDE开发工具怎么行OperaMasks Studio目前觉得还不是非常的好用我用OperaMasks框架做了一个简单的页面(也就是使用了它的TabLayout布局而已外加一点文字)居然需要下载差不多kb大小的文件而且开发的过程中非常的小心千万不要出差错如果对JSF原理不是很熟悉的话挑错的过程很痛苦很难对JSF组件进行个性化虽然说JSF的Sun定义的JEE标准但有时标准这东西不是灵丹妙药比如中国有这么多的股市专家在网络电视上指点股市然而还是有很多听信了专家的话的股民也没有赚到多少钱
Structs 的架构设计的比较简单使用基于控制器导航和页面导航也很容易扩展而且与FreeMarker结合可以很容易的自定义标签库非常的方便不过Structs X配置的步骤太繁琐了需要定义对HTTP请求和响应的映射和所有的ActionForm对象等Structs X好像有所改观但是目前为止Structs x的参考文档好像不多应用也不广
Spring MVC的架构设计的非常优秀可以和其他框架比如JSPJSTlFreeMarkerTiles方便的进行集成提供了强大的依赖注入功能不过要想使用它需要先配置一大堆的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了嗯还是研究一下它的源代码先