对于Struts和Spring两种MVC框架的比较[1]
2008-02-23 05:39:17来源:互联网 阅读 ()
基于Web的MVC framework在J2EE的世界内已是空前繁荣。TTS网站上几乎每隔一两个星期就会有新的MVC框架发布。现在比较好的MVC,老牌的有Struts、Webwork。新兴的MVC框架有Spring MVC、Tapestry、JSF等。这些大多是著名团队的作品,另外更有一些边缘团队的作品,也相当出色,如Dinamica、VRaptor等。这些框架都提供了较好的层次分隔能力。在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高。
如何选择一个好的框架应用在您的项目中,将会对您的项目的效率和可重用是至关重要的。本文将对现在最流行、最常用的两种framework进行介绍。
一、Struts
Struts是Apache软件基金下Jakarta项目的一部分。Struts框架的主要架构设计和研发者是Craig R.McClanahan。Struts是现在Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已落后于新兴的MVC框架。面对Spring MVC、Webwork2 这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品研发的角度而言,Struts仍然是最稳妥的选择。
Struts有一组相互协作的类(组件)、Serlvet连同jsp tag lib组成。基于struts构架的web应用程式基本上符合JSP Model2的设计标准,能够说是MVC设计模式的一种变化类型。根据上面对framework的描述,我们很容易理解为什么说Struts是个web framwork,而不但仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和单独于该框架工作的实用程式类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts能够很容易的和数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够和JSP, Velocity Templates,XSL等等这些表示层组件想结合。
Struts的体系结构
struts framework是MVC 模式的体现,下面我们就从分别从模型、视图、控制来看看struts的体系结构(Architecture)。
从视图角度(View)
主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),能够简化创建用户界面的过程。现在包括:Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个Taglib。有关他们的周详资料请参考struts用户手册。
从模型角度(Model)
模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也划分到模型中)。在Struts中,系统的状态主要有ActiomForm Bean体现,一般情况下,这些状态是非持久性的。假如需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,能够方便的和数据库操作。
从控制器角度(Controller)
在Struts framework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。
对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这几个组件就是:ActionServlet。Action Classes,Action Mapping(此处包括ActionForward),ActionFrom Bean。
[1] [2]
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇: 用C 品尝Vista美味[4]
- 对于Struts和Spring两种MVC框架的比较[2] 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash