本文分析了JBoss Seam有望取代Struts成为Java Web应用框架”下一个王者”的原因,并且指出了Spring和Google Web工具包的不足。
时至今日,Apache Struts仍旧是最受欢迎的Java Web应用框架。然而,对于新的应用开发,它显得有些过时,并且存在很多不足。
目前已经出现了几个有望取代Struts的框架,但是还没有最终的胜利者。你认为谁会当之无愧地成为领导者呢?如果你是一个Java Web应用程序的开发者,你会选择哪种框架呢?
目前已经有了很多受欢迎的Web UI技术,包括富界面、AJAX、RIA和其他一些相似的技术。
然而,在服务器端仍然只有Java——Java中有许多基于JSP和Servlets的、流行的服务器端技术。许多时候,这些服务器端技术需要和客户端的富界面技术一起使用。
举例来说,许多开发人员将AJAX与新生代的Java Web框架JSF合并起来一起使用;还有些开发人员通过Java远程调用库、开源或者商业代码来调用JavaScript和ActionScript,用于远程访问服务器端。
这是否意味着,我们需要应用一个像Apache Shale那样,可以很好地和JSF工作的框架呢?这是否意味着,我们只需要根据Web应用中的Java部分,只使用远程访问包和Servlets呢?或者意味着,我们应该使用一个包含两者的框架,例如,JBoss Seam?
在回答这些问题之前,让我们先关注一下另外一个问题:了解Sun究竟在说什么。
不幸的是,在这点上,Sun没有明确的信息。它有三种战略,并且在同一时间,它说出了全部这三种。它们是:
1. JSF——基于规范的服务器端组件,用于加强早期的Servlets和JSF模型。
2. Swing——用于Web的、以虚拟机为基础的解决方案。在”富界面时代”,应该有这样一个领导者,毕竟它诞生于10年前。但是,不幸的是,它落伍了。Swing应用框架被誉为能使Swing复活的”救世主”。但是,我不认为这能”破冰”。
3. JavaFX——目前主要是在新闻上会提到它,而实际应用还是很少。富Web应用框架包含手机、网站和任何其他接口,这就是答案所在。而只有时间才能告诉什么会变成它。我的观点是,在做更多事情之前,Sun已经使开发者们兴奋起来。所以,在开发者们感到失望并且离开这个阵营之前,它实际上可能是一个奇妙的选择。
现在,我们有了这些信息,但是我对Sun的方向却产生了困惑,我们应该选择哪种作为Web应用技术呢?
我的观点是,Swing会败下阵来(或许Swing技术是伟大的,但是要改变这一印象,还有大量的工作需要做);JavaFX在当前阶段只是一个承诺,在很长时间内,它的真正特性不会变得明朗起来;
因此,唯一可行的选择是JSF。当然,JSF自身有一系列的问题。但是,像Seam这样的框架和包含ICEfaces这样的AJAX组件,将会是一个好的选择。
此外,使用Seam这样的框架,你不需要依赖于JSF,并且你甚至可以使用它来远程访问Java服务器端的纯JavaScript(例如,Dojo工具包)或者Adobe Flex应用。JSF 2.0和JavaServlets 3.0也即将推出,两者的推出将会对之前的版本有大大的改进。
在我们结束讨论,并且有点倾向于使用Seam作为选择的框架之前,还有两个选择值得考虑——Spring和Google Web工具包。
如果你已经在服务器端使用了Spring,将会发现Spring是一个伟大的选择,项目组里的每个人都知道Spring很棒!
然而,Spring在很多方面,偏离了Java EE标准,但是我建议紧跟标准。
有趣的是,Seam可以和Spring工作在一起,并且Spring beans可以被用作Seam组件。
Google Web工具包是一个充满想象力的工具,它通过把Java代码转换成JavaScript来抚慰Java开发者们。我认为它像”技术摇滚明星”一样吸引了许多开发人员的关注。目前,它也在被大量采用。
然而,它不是一个完整的Web框架。
有趣的是,它也可以和Seam工作在一起。所以,我不认为今天还有什么能够好过Seam?!
JBoss Seam或许不是100%的答案,也或许还没有达到Apache Struts所达到的级别。但是,它已经在领跑了,并且毫无疑问的是,它将继续领跑,除非有新的选择出现。
分享到:
相关推荐
seam_carving代码实现 图像缩放
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...
seam in action seam in action seam in action seam in action seam in action seam in action seam in action
JBOSS_SEAM配置
seam资料seam资料seam资料seam资料seam资料seam资料seam资料seam资料
SeamCarving的C++实现代码,使用opencv库。包含完整项目工程及测试图像,可直接使用
seam级联菜单例子
seam carving的相关代码实现
JBoss Seam JBoss Seam JBoss Seam
seam介绍
seam下一代web开发框架
Jboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in Action
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
seam框架需要的所有jar包,支持seam ui组件
1)JSP+javabean+DAO(Ajax:anywhere) 2)Struts+spring+hibernate3(AJax:DOJO) 3)JSF+richfaces+seam+EJB 总共3个完整的实例,并配有需求分析~~~~~~~~,绝对经典!
JBOSS SEAM组件中文手册 Seam_2.0_Reference_zh_CN
seam中的注解总结,包括三种JPA和seam自身的标签
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
Seam 中文开发指南 seam中文文档
Seam2.10安全API为你使用Seam开发的应用程序提供了大量与安全认证...• 权限管理 - 一组内置的Seam组件,能让应用程序的安全政策变得容易管理 • 验证码支持 - 帮助防止通过软件或脚本对你用Seam开发的网站进行攻击等等