2010-03-17

Struts,Struts2及 WebWork比较

StrutsStruts2WebWork比较
StrutsStruts2WebWork都是基于MVC架构的轻量及框架。在众多框架中,最具代表性的就是StrutsWebWork,而Struts2则综合了二者优 点,它比过去所有其他的MVC框架更加优秀。
MVC模 型是一种交互界面的结构组织模型,能够使软件的计算机模型独立于界面的构成。MVCTrygve Reenskaug提出,首先被用在SmallTalk中,MicrosoftMFC的基础类也是基于MVC的。
Struts2从名字上看是Struts的升级版,与Struts有着很近的血缘关系;事实上其与WebWork有着更多的相似之处反而与Struts框架有着几乎完全不通的体系结构。(我觉的之所以命名为Struts2,而不是WebWork2,还在与Struts的超牛名气和SSH框架整合应用的 巨 大人气;这样命名会使Struts的使用者乐于继续学习并使用,哪怕实际上与Struts有者很大的差 别;另一方面还会使WebWork的使用者很快上手)。Struts2框架的核心部分是基于WebWork设计思想的,最明显的是大量拦截器的使用。
1.1Struts框架:
最早的MVC框架,完全基于 前 端控制器模式开发,最突出缺点:代码与Servlet API耦合过于紧密。
执行流程:
1)客户端浏览器发出请求
2)服务器端的 Struts 中心类 ActionServlet 找到 struts-config.xml 文件,并放入内 存,
将文件 中的内容作为请求路径映射。
3ActionServlet 类 在 struts-config.xml 文件中找到相关的请求路径映射后添充

ActionForm
类,将前台传进来的表单域打包成 Bean
4)转到 Action 类进行业务逻辑 功 能的实现,比如增、删、改、查数据库中的数据。

5)通过 struts-config.xml 文件的映射,找到 逻辑处理结束后显示给客户端用户看到

的页面,转发功能的实现是通过 ActionForward 对 象。
6)将页面返回给客户端。
1.2Struts2框架
综 合了StrutsWebWork的 所有优点,核心设计思想与WebWork相 同。
 
执 行流程:
1) 客户端提交一个(HttpServletRequest) 请求,如
http://localhost: 8080/bookcode/ch2/Reg.action就 是提交一个(HttpServletRequest) 请求。
 2请 求被提交到一系列的过滤器(Filter), 如(ActionContextCleanUp、 其他过滤器(SiteMesh等)、 FilterDispatcher)。 注意:这里是有顺序的,先ActionContext CleanUp, 再其他过滤器(Othter FiltersSiteMesh等), 最后到FilterDispatcher
  3FilterDispatcher是 控制器的核心,就是MVCStruts 2实 现中控制层(Controller) 的核心。
4  FilterDispatcher询 问ActionMapper是 否需要调用某个Action来 处理这个(HttpServlet Request) 请求,如果ActionMapper决 定需要调用某个ActionFilterDispatcher则 把请求的处理交给ActionProxy
 5 ActionProxy通 过Configuration Managerstruts.xml) 询问框架的配置文件,找到需要调用的Action类。 例如,用户注册示例将找到UserReg类。
  6ActionProxy创 建一个ActionInvocation实 例,同时ActionInvocation通 过代理模式调用Action。 但在调用之前,ActionInvocation会 根据配置加载Action相 关的所有Interceptor(拦 截器)。
 7一 旦Action执 行完毕,ActionInvocation负 责根据struts.xml中 的配置找到对应的返回结果result
1.3WebWork框 架
最突出特点是代码不在以来ServletAPI
执行流程:
(1)       ServletDispatcher接收客户端请求
(2)       ServletDispatcher根据请求找到制定Action,并调用Action处理请求信息
(3)       Action处理完毕返回一个结果映射,改映射制定具体试图 信息。
(4)       由试图信息找到制定JSP界面,显示给客户端。
 
参考资料:
5.《开发者突击:Struts2核心技术与JavaEE框架整合开发实战》P6-15
参考资料25很详细,讲的很 好,可以参考。

没有评论: