菜单
  

        Struts也是实现MVC模式的一种具体方式,接下来介绍Struts的基本内容。
    2.3  Struts框架
    2.3.1 Struts2概述
    Struts2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化。
    2.3.2 Struts技术的发展概况
    经过751年多的发展,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。市场占有率超过20%,拥有丰富的开发人群,几乎已经成为了事实上的工业标准。但是随着时间的流逝,技术的进步,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。
    对于Struts1框架而言,由于与JSP/Servlet耦合非常紧密,因而导致了一些严重的问题。首先,Struts1支持的表现层技术单一。由于Struts1出现的年代比较早,那个时候没有FreeMarker、Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。其次,Struts1与Servlet API的严重耦合,使应用难于测试。最后,Struts1代码严重依赖于Struts1 API,属于侵入性框架。
    从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、Tapestry和Spring MVC等。这些框架由于出现的年代比较近,应用了最新的设计理念,同时也从Struts1中吸取了经验,克服了很多不足。这些框架的出现也促进了Struts的发展。目前,Struts已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。Struts2虽然是在Struts1的基
    础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。Struts1分化出来的另外一个框架是Shale。这个框架远远超出了Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts1的升级。 本文下面的内容将主要讨论Struts2。
    2.3.3 Struts的体系结构
    struts2架构图如图2.1所示:
     
    图2.1  struts2架构图
    Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。
    Struts2框架的大概处理流程如下:
    1、客户端发送请求
    2、请求先通过ActionContextCleanUp-->FilterDispatcher
    3、FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action
    4、如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,这儿已经转到它的Delegate--Dispatcher来执行
    5、ActionProxy根据ActionMapping和ConfigurationManager找到需要调用的Action类
    6、ActionProxy创建一个ActionInvocation的实例
    7、ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用
    8、Action执行完毕,ActionInvocation创建Result并返回响应(通过execute方法将信息返回到FilterDispatcher)
    9、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)
    10、响应用户(jsp--->客户浏览器端显示)
  1. 上一篇:Android系统中铃声设置程序设计
  2. 下一篇:网络图像搜索中的图像摘要技术研究
  1. asp.net物流信息管理系统设计与实现

  2. ASP.NET+SQLSERVER三通物流管理...

  3. 随机物流车辆调度问题的仿真与决策

  4. Android物流管理系统设计

  5. Andriod物流车辆在途信息手机查询系统的开发

  6. Struts2构件自动测试技术研究及应用

  7. jsp+sqlserver物流货物运输在...

  8. 杂拟谷盗体内共生菌沃尔...

  9. 乳业同业并购式全产业链...

  10. 中考体育项目与体育教学合理结合的研究

  11. 当代大学生慈善意识研究+文献综述

  12. java+mysql车辆管理系统的设计+源代码

  13. 电站锅炉暖风器设计任务书

  14. 大众媒体对公共政策制定的影响

  15. 十二层带中心支撑钢结构...

  16. 酸性水汽提装置总汽提塔设计+CAD图纸

  17. 河岸冲刷和泥沙淤积的监测国内外研究现状

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回