《143254_第三讲Struts框架讲解.ppt》由会员分享,可在线阅读,更多相关《143254_第三讲Struts框架讲解.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第三讲第三讲 StrutsStruts框架讲解框架讲解博和利初级培训博和利初级培训博和利初级培训博和利初级培训 开发技能开发技能开发技能开发技能MVCJSP Model 1MVCJSP Model 2MVC 模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。模型(Model)模型是应用程序的主体部分。模型表示业务数据,或者 业务逻辑.视图(View)视图是应用程序中用户界面相关的部分,是用户看到并 与之交互的界面。控制器(controller)控制器工作就是根据用户的输入,控制用户界面数据显 示和更新model对象状态。MVCFram
2、ework 基于请求响应的Framework控制器(Controller)控制整个Framework中各个组件的协调工作。业务逻辑层(Business Logic)对Framwork本身来说,这 里仅仅只是概念和几个提够服务的基础组件,真正的实现与客户的业务逻辑接轨,还需要开发人员在Framework上再次扩展。数据逻辑层(Data Logic)绝大应用系统都需要涉及到数据交互,这一层次主要包括了数据逻辑和数据访问接口。对于数据逻辑来说,如果你了解数据建模(Data Modeling)可能就很容易理解。问题反馈问题反馈(一一)1.MVC模式是从视图到控制器再到模型,最后再返回视图,但有时视图层
3、也可以直接与模型层交互,请问在什么情况下用到,是不是不推荐使用?当页面上不存在与模型层对应的属性时,而页面上又恰恰需要数据库中的某个字段的内容时可以与模型层直接交互,但不推荐使用,因为不利于数据库的维护。2.Framework中所谓的框架是不是按提供MVC形式摆放三个层次的位置就可以使用MVC模式了?应该可以说只要按MVC形式的要求把相应的内容布置上就可以使用了,但实际上还需要使用者遵循MVC提供商中的一些接口之类的约定就可以了。问题反馈问题反馈(二二)Struts的概念和体系结构 Struts有一组相互协作的类、Serlvet以及Jsp TagLib组成。基于Struts构架的web应用程序
4、基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的描述,我们很容易理解为什么说Struts是一个web framwork,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts的概念和体系结构的概念和体系结构 Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能
5、够与JSP,Velocity Templates,XSL等等这些表示层组件想结合。Struts与与Web App的关系的关系Struts的体系结构的体系结构从视图角度(从视图角度(ViewView)首先,Struts提供了Java类org.apache.struts.action.ActionForm,Java开发者将该类细分来创建表单bean。在运行时,该bean有两种用法:当JSP准备相关的HTML,表单以进行显示时,JSP将访问该bean(它保存要放入表单中的值)。那些值是从业务逻辑或者是从先前的用户输入来提供的。当从Web浏览器中返回用户输入时,该bean将验证并保存该输入以供业务逻辑
6、或(如果验证失败的话)后续重新显示使用。从视图角度(从视图角度(ViewView)其次,Struts提供了许多定制JSP标记,它们的使用简单,但是它们在隐藏信息方面功能强大。从模型角度(从模型角度(Model)Struts虽然不直接有助于模型开发。在Struts中,系统模型的状态主要由ActionForm Bean和值对象体现。从控制器角度(从控制器角度(Controller)在Struts framework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个
7、组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。Struts 的基本组件包的基本组件包Struts的基本组件关系图的基本组件关系图Struts的基本组件包的基本组件包org.apache.struts.actionorg.apache.struts.action基本上,控制整个struts framework的运行的核心类、组件都在这个包中,比如我们上面提到的控制器ActionServlet。还有Action,ActionForm,ActionMapping等等
8、。struts1.1比1.0多了 DynaActionForm 类。增加了动态扩展生成FormBean功能org.apache.struts.actionsorg.apache.struts.actions这个包是主要作用是提供客户的http请求和业务逻辑处理之间的特定适配器转换功能,而1.0版本中的部分动态增删FromBean的类,也在struts1.1中被Action包的DynaActionForm组件所取代org.apache.struts.configorg.apache.struts.config提供对配置文件struts-config.xml元素的映射。这也是sturts1.1中新
9、增的功能org.apache.struts.utilorg.apache.struts.utilStrtuts为了更好支持web application的应用,提供了一些常用服务的支持,比如Connection Pool和Message Source。详细信息请参考http:/jakarta.apache.org/struts/api/org/apache/struts/util/package-summary.htmlorg.apache.struts.tagliborg.apache.struts.taglib这不是一个包,而是一个客户标签类的集合。下面包括Bean Tags,HTML T
10、ags,Logic Tags,Nested Tags,Template Tags这几个用于构建用户界面的标签类。org.apache.struts.validatororg.apache.struts.validatorStruts1.1 framework中增加了validator framework,用于动态的配置from表单的验证。详细信息请参阅 http:/ Service Peers与struts的交互,ebxml和soap不太理解?2.Struts的简单工作原理:从一个页面跳转到另一个页面的处理过程?(1)当客户端浏览器发起请求到ActionServlet时,ActionServl
11、et首先对请求进行一系列处理:根据请求的路径和配置信息找到对应的Action Bean 和Form Bean。(2)在确定将要调用Action Bean和对应的Form Bean后,就将请求中包含的值填充到Form Bean中(Action可以不关联任何ActionForm,所以这一步是可选的)。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。问题反馈(二)问题反馈(二)(3)然后Struts将请求分发至相应的Action Bean处理,ActionMapping参数、ActionForm参数、request和response都作为参数传给处理请求的Action Bean的execute方法。(4)Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。(5)控制权重新回到ActionServlet,AcrionServlet根据Action返回的ActionForm对象转发到相应的JSP页面。(6)处理结果返回给浏览器。问题反馈(三)问题反馈(三)
限制150内