锁定老帖子 主题:Struts2概述
该帖已经被评为新手帖
|
|||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||||||||||||||
发表时间:2007-10-30
最近研究了一下srtuts2.0,将一些心得准备以一个系列的方式列一下。 一、MVC思想及其优势 MVC思想将一个应用分成三个部分:Model(模型)、View(视图)、Controller(控制器)。这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。 MVC特点:1、多个视图对应一个模型。2、模型返回的数据与显示逻辑分离,模型数据可以应用任何显示技术,例如JSP,Velocity,或者生成Excel。3、应用被分成三层,降低了各层之间的耦合,提高可扩展性。4、MVC更符合软件工程思想,不同的层各司其职。 常用的MVC框架介绍:全世界第一个MVC框架是struts,2001年出现。现在比较流行的MVC框架罗列如下: JSF:他是标准,这是他的优势。但也有一些缺点:用户较少,资源不是很丰富,和Servlet API耦合;成熟度还有待于进一步提高。 Tapestry:具有很好的分工合作。 Spring MVC框架:设计比较好,但是使用起来比较复杂,和Servlet API耦合,有人说Spring有过度设计的危险,但是我有些不理解这句话的含义。 Webwork,类似struts2,较好的设计,从ServletAPI分离。 Model1和model2: Model1:JSP页面接受处理客户端请求,对请求处理后直接做出相应。用javabean处理业务逻辑,这个时候JSP既做控制器又做视图。 Model2:Servlet作为前端的控制器,JSP作为视图,javabean作为控制器。 二、struts2概述 Struts1的缺点: 1、 支持的表示层技术单一 Struts1只支持JSP视图技术,当然,通过某些不自然的整合可以支持velocity等技术。 2、 struts与servlet API严重耦合,难于测试 比如说:如果要对struts1的Action的execute进行测试的时候,该方法有四个参数:ActionMapping、ActionForm、HttpServletRequest和HttpServletResponse,初始化这四个参数比较困难,尤其是HttpServletRequest和HttpServletResponse两个参数,因为这两个参数通常由容器进行注入的。如果脱离web服务器,Action的测试是很困难的。 3、 struts1的侵入性太大 一个Action中包含了大量的strutsAPI,比如ActionMapping、ActionForm、ActionForwad。这种侵入式的设计最大的弱点在于:切换框架会相当困难,代码复用较低,不利于重构,对struts的依赖太严重。 Struts2则在Webwork的优良基础设计的基础上,进行了一次巨大的升级(我是这样认为的)。注意,struts2不是基于struts1,而是基于webwork的。Struts2针对struts1的不足,提出了自己的解决方案(实际上大多是webwork的解决方案)。 是使用struts2还是使用webwork?本人倾向使用struts2,原因:1、毕竟struts2是对webwork的一次升级。2、webwork已经不再升级。 Struts2的大致处理流程: 1、 浏览器发送请求,如login.action 2、 核心的控制器FilterDispatcher根据请求决定调用合适的Action。 3、 Struts2的拦截器链自动对请求应用通用功能,例如验证、填充参数、文件上传等。 4、 调用Action的execute方法,实际上是调用Action代理的方法。(基于AOP理论) 5、 将结果信息输出到视图中,视图可以是JSP,FreeMarker,Velocity甚至是JSON。 <o:p> </o:p> 比较Struts1和Struts2
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||
发表时间:2008-03-08
这个也简单了些吧
|
|||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||
发表时间:2008-03-28
chenshuang1227 写道 Webwork,类似struts2,较好的设计,从ServletAPI分离。 |
|||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||
发表时间:2008-03-28
struts2是综合了 struts和webwork 而来的吧!
不是webwork像struts2 |
|||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||
浏览 4141 次