作者: Shashank Tiwari 翻译: Thomas 来源: O’Reilly
作者简介: Shashank Tiwari(又名Shanky),Saven Technologies的首席架构师。有多年从事高性能应用程序设计和开发的经验。近年来,主要关注面向服务架构。他定期地在许多科技期刊上发表文章,并且常以开发者导师和架构师的身份出席研讨会。他同时也是开源软件的热心支持者。现和他的妻子以及两个儿子居住在美国纽约。
摘要: 本文分析了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所达到的级别。但是,它已经在领跑了,并且毫无疑问的是,它将继续领跑,除非有新的选择出现。
审校:Richard
原创文章如转载,请注明:转载自JBoss Seam中文站
[ http://www.jbossseam.com/ ]
本文链接地址:http://www.jbossseam.com/2007/11/14/seam-replace-struts/
相关推荐
总的来说,Spring+Hibernate+Struts的组合之所以能在Java开发中占据主流,得益于它们各自在不同层面提供的强大功能和标准化的开发模式。尽管有新的框架不断涌现,但这些经典框架的稳定性和社区支持使得它们在一段...
基于蒙特卡洛的分布式电源(风光)概率潮流计算Matlab仿真:IEEE33节点牛拉法潮流计算及风速光照概率密度图、网损图与电压幅值对比图.pdf
2025年地方政府怎么干?目标与抓手-粤开证券【新研报 xinyanbao.cn】
目前第一版实现的功能有 1.导入图像 2图像可中心缩放(右上角放大缩小,按钮及滚轮双重可控)。 3.图像重置功能 4.后续会丰富扩展
MATLAB代码:'计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度'的仿真实现与复现程序.pdf
内容概述 本文为《DeepSeek 入门宝典 - 个人使用篇》,主要介绍 DeepSeek 面向个人用户的使用指南。文档涵盖了 DeepSeek 的使用方式,包括网页版、APP、API 开放平台和私有化部署,以及其功能界面中三种使用模式的区别。同时,深入讲解提问技巧与策略,如自然语言提问效果更好、常见错误提问方式及进阶提问公式等。还列举了丰富的应用场景与案例,像内容创作、打造个人知识库、计划制定和休闲娱乐等方面,并提供了相关学习资源,如官网、51CTO 官网 AI 专区及在线课程 DeepSeek 专区等。 适用人群 普通大众:想利用 AI 工具辅助日常学习、生活和工作,如内容创作、知识获取、计划制定等的人群。 内容创作者:包括新媒体博主、文案撰写者等,希望借助 DeepSeek 提高创作效率和质量,生成多样化内容。 自学者:在学习过程中遇到问题,想通过 DeepSeek 获取学习资料、解答疑惑、制定学习计划的人。 使用目标及场景 内容创作:在撰写小红书文案、长图文时,借助 DeepSeek 生成文字内容并输出 HTML 代码,提升创作效率和质量。
comsol焊接 激光熔覆多层多道 温度场流场应力场应力场 一共是两个模型,电弧 激光温度场流场电弧温度场应力场 ,激光熔覆多道焊接:电弧与激光技术下的温度场、流场与应力场模型研究,激光焊接与熔覆模型分析,comsol焊接;激光熔覆;多层多道;温度场;流场;应力场;电弧模型;激光温度场;电弧温度场,激光焊接与熔覆:多工艺多场耦合模型研究
基于PI控制器滑膜控制器的三相永磁同步电机无速度传感器控制策略SVPWM_MRAS_PISMC.pdf
内容概要:本文介绍了使用MATLAB实现的一个融合CNN和多头注意力机制的多变量时间序列预测模型。该项目针对现有传统时间序列预测方法在高维、复杂数据处理上的不足,提出了一种结合卷积神经网络局部特征提取和多头注意力机制全局依赖建模的新方法。该技术适用于金融、能源、气象等多个行业的预测分析。文章详细阐述了模型设计思路、具体架构搭建流程,以及实现过程中的关键技术和解决方案,展示了项目的特点、应用领域及其优越之处。 适合人群:具有一定机器学习基础并对深度学习有兴趣的研究人员和技术爱好者;关注多变量时间序列预测在各类行业中应用的专业人士。 使用场景及目标:该技术方案可用于解决涉及大量异构数据流的时间序列预测难题,特别是那些涉及到长周期依赖关系的情况。例如,金融机构的风险评估与市场预测、电力企业的负载管理、气象部门的精准天气报告以及其他制造或物流产业里需要提前计划的任务安排等。 其他说明:文中给出了完整的MATLAB代码片段用于说明具体实现方式,使读者能够直接动手实践操作该算法,并提供了详细的实验过程描述及评估标准以供参考。
基于XGBoost和LSTM模型来预测污染物浓度(Python完整源码和数据) 该项目应用了一些机器学习技术来分析和预测北京的空气质量。 主要使用XGBoost和LSTM模型来预测中国北京35个站点未来24*2小时(两天)的几种污染物(PM2.5、PM10、O3)的浓度水平。 基于XGBoost和LSTM模型来预测污染物浓度(Python完整源码和数据) 基于XGBoost和LSTM模型来预测污染物浓度(Python完整源码和数据)
混合储能系统能量管理Simulink仿真模型:基于蓄电池与超级电容的LPF功率分配与SOC限值管理策略.pdf
1、文件说明: Centos8操作系统xbanish-1.8-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf xbanish-1.8-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
1、文件说明: Centos8操作系统wsdd-0.8-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf wsdd-0.8-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
高光谱图像分类:CNN-RNN结合PyTorch的完整项目报告.pdf
1、文件说明: Centos8操作系统xcb-util-image-0.4.0-9.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf xcb-util-image-0.4.0-9.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
labelmeai2 ai标注模型文件
1、文件说明: Centos8操作系统xcompmgr-1.1.8-2.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf xcompmgr-1.1.8-2.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
格行随身WiFi改IMEI的教程
内容概要:本文详细列举并解答了29个关于 TypeScript 常见面试问题。涵盖 TypeScript 定义及其与 JavaScript 区别、为什么要使用 TypeScript 及其好处、TypeScript 编译流程、关键编程概念(如接口、类、继承)、模块及命名空间的作用、高级特性(如装饰器和 Mixin)、如何处理可选参数及函数重载、类型系统中的细节(如泛型、类型断言、声明合并)、面向对象原则的支持情况、以及具体编码技巧(比如如何调用基类构造函数)。每一点都有针对性地解释,以帮助准备 Web 开发岗位求职者理解和掌握这门静态类型语言的特点。 适合人群:即将参与春季校园招聘的技术面试的Web前端开发初学者、初级开发人员和转行者。 使用场景及目标:①作为面试备考资料,巩固对 TypeScript 的全面理解,尤其是针对面试官经常询问的主题点;②加深理解 TypeScript 相较于普通 JavaScript 的优势和改进,提高在实际工作中解决问题的能力;③通过具体的例子学习 TypeScript 各个特性如何应用于开发过程中。 其他说明:本文不仅讲述了理论层面的知识要点,而且结合具
白光信号仿真与包络线绘制:希尔伯特变换与插值法在MATLAB程序中的应用.pdf