BeyondTechnology1技术不是今天的主旋律,思想把我们连接到一起STRUTS框架概述陈伟东软培训中心2007.02BeyondTechnology2如何评价软件的质量•企业对软件的需求:–效益:–成本:•开发成本•管理和维护成本•升级和扩展成本–周期:•快速开发BeyondTechnology3软件的质量•显示的–可靠性:Reliability–性能:Performance–可用性:Availability•操作性–吞吐量:Throughput–可管理性:Manageability–安全性:SecurityBeyondTechnology4软件质量•扩展能力:–可升级性:Scalability–可维护性:Maintainability–可扩展性:Extensibility–灵活性:Flexibility–可重用性:Reusability–可移植性:PortabilityBeyondTechnology5框架(Framework)是什么•框架是构成一类专业领域可复用设计的一组相互协作的类,它规定了应用的体系结构、系统中的类和对象的分割及协作、各部分的主要责任、控制流程;•一个框架就是一个用于构建针对专门客户应用的可重用的“半成品”,是可以被应用开发者定制的应用骨架•(框架就是一个定义好的类,他对各个模块给出划分.)BeyondTechnology6使用框架带来的好处•软件框架技术的出现和应用使专门从事提供软件应用框架或基础结构成为可能•为软件开发商或系统集成商提供针对目标领域应用提供半成品软件,在此基础上针对最终用户的具体需求进行客户化再开发•使大力度的软件重用得以实现,从而使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而且通过对框架进行参数化的配置使得软件的适应性、灵活性增强BeyondTechnology7Struts框架BeyondTechnology8Struts•是Apache的Jakarta开源项目之一•是一个实现MVC思想的WEB应用框架•符合J2EE规范BeyondTechnology9Struts的核心组件——视图(view)部分•Struts提供了org.apache.struts.action.ActionForm类Struts的核心组件之一,Java开发者可以通过继承或另外创建的方式来定义FormBean;•Struts提供了功能丰富的JSP定制标签进行页面显示逻辑的复用BeanTags、HTMLTags、LogicTags、(常见的标签)注:少用%…%,多用标签.NestedTags、TilesTags(标签是对一些公用的东西进行抽取封装,即维护的时候只要维护抽取出来的东西即可.)BeyondTechnology10Struts的核心组件——业务模型(model)部分•不能直接使用Struts进行业务模型开发。但是Struts通过FormBean为系统业务模型的提供状态信息。•通过Action实例中的execute()方法调用业务模型struts-config.xmlClientBrowserActionFromModelJavaBeanControllerActionViewJSPControllerActionServlet1Event7Update6Forward5ToForward2DispatchHTTPRequestHTTPResponse3Call4ReturnBeyondTechnology11Struts的核心组件——控制器(Controller)部分•ActionServlet(起分发作用)继承自javax.servlet.http.HttpServlet类,其在Strutsframework中扮演的角色是中心控制器。它提供一个中心位置来处理全部的终端请求。控制器ActionServlet主要负责:将HTTP的客户请求信息组装后,根据配置文件(struts-config.xml)的指定描述,转发到适当的处理器(Action)。按照J2EEServlet规范,ActionServlet需要在web.xml中配置.•Struts的配置文件(由应用开发人员编写)默认文件为struts-config.xml,位于WEB-INF中BeyondTechnology12Struts的核心组件——控制器(Controller)部分•Action(应用开发人员根据业务需要编写相应的Action类)动作可以看作是控制器与业务逻辑之间的适配器(Adaptor),其功能是连接已经分离的控制器和业务模型。所有的action类都要继承org.apache.struts.action.Action,并且要是线程安全的(Thread-Safe)。还提供了其它的辅助功能,比如:认证(authorization)、日志(logging)和数据验证(validation)。BeyondTechnology13Struts的核心组件——控制器(Controller)部分•ActionMapping(主要由应用开发人员在配置文件中实现)*是对控制逻辑的表示,是具体请求(request)和具体动作(action)实例的映射。这种映射存储在Struts配置文件(默认为struts-config.xml)中。•ActionForward(主要由应用开发人员在配置文件中实现)表示当Action实例的execute()方法执行业务逻辑完毕后,控制器根据Mapping信息将业务模型处理后的结果信息转到适当的资源(比如转移到一个视图组件以显示结果)。BeyondTechnology14Struts处理请求的流程struts-config.xmlClientBrowserActionFromModelJavaBeanControllerActionViewJSPControllerActionServlet1Event7Update6Forward5ToForward2DispatchHTTPRequestHTTPResponse3Call4ReturnBeyondTechnology15总结•Struts是一个实现了MVC思想的WEB应用框架•FormBean能够自动与页面表单域(Field)关联.•ActionServlet将收到的请求中的参数填充到FormBean实例中,之后再转发给Action实例.(FormBean的作用)•Action实例根据具体请求调用相关业务模型类的方法,并得到处理结果.•ActionServlet将Action实例定向到具体视图,完成响应.•Struts配置文件描述请求与动作的映射关系。•两种映射关系:ActionMapping和ActionForward实例描述其中的配置信息.BeyondTechnology