java spring mvc与struts 效率_对于Struts和Spring两种MVC框架的比较

1 引言基于Web的MVC framework在J2EE的世界内已是空前繁荣。TTS网站上几乎每隔一两个星期就会有新的MVC框架发布。目前比较好的MVC,老牌的有Struts,Webwork。新兴的MVC框架有Spring MVC,Tapestry,JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica,VRaptor等。这些框架都提供了较好的层次分隔能力。在实现良好的MVC分隔的基础上,提供一些现成的辅助类库,同时也促进了生产效率的提高。如何选择一个好的框架应用在项目设计中,将会对项目的效率和可重用具有至关重要性。

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组成。基于Stmts构架的Web应用程序基本上符合JSPModel2的设计标准,是MVC设计模式的一种变化类型。根据对framework的描述,很容易理解为什么说Struts是一个Web framwork,而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Obiect Relation Bridge。在视图层,Struts能够与JSP,VelocityTemplares,XSL等等这些表示层组件相结合。

Struts的体系结构,Struts framework是MVC模式的体现,分别从模型、视图、控制描述struts的体系结构(Architec-ture)。

(1)从视图角度(View)主要由JSP建立,Struts自身包含了一组可扩展的自定义标签库(TagLib),可简化创建用户界面的过程。目前包括:Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个Taglib。有关其详细资料请参考Struts用户手册。

(2)从模型角度(Model) 模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也划分到模型中)。在Struts中,系统的状态主要有ActiomForm Bean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便与数据库操作。

(3)从控制器角度(Controller) 在Struts framework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action,ActionMapping,ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。

对于Struts如何控制、处理客户请求,通过对Struts的4个核心组件介绍来具体说明。这几个组件是:ActionServlet;Action Classes;Action Mapping(此处包括ActionForward);ActionFrom Bean。本文引用地址:http://www.eepw.com.cn/article/188788.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值