Chinaunix首页 | 论坛 | 博客
  • 博客访问: 925159
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类:

2009-06-30 09:59:19

strutsNotes(1)(2008-4-1 20:12:00)

【收藏】 【评论】

标签:struts 

第一章 struts工作原理
        在这一章里,我们要学习以下几点内容
         1:mvc设计模式概述
         2:MVC的优点
         3:MVC的适用范围
         2:struts的体系结构
         3:struts工作流程

 

                               MVC设计模式概述
MVC是Model---View----Controler的简称。即模型---视图----控制器。最近几年被业界推荐为SUN公司的J2EE平台的设计模式。爱到越来越多的WEB开发者的欢迎。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
模型:模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
控制器:当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
凶杀案发生了(用户点击提交按钮)视图----->公安部门进行刑事侦察,找出主凶(控制器)------>交给法院案件审理判型(模型)---->对主凶执行伏法(视图)


                             MVC的优点

1:MVC设计模式强制性的把用户的输入、业务逻辑的处理、数据结果的显示分开。提高了Web应用程序的可
  维护性。比如:改动模型的业务逻辑代码不会影响到视图和控制器。由于Mvc三个模块相当于独立,改变  任何一个不会影响其它两个从而实现的程序的松藕合
2:由于多个视图可以共享同一个模型。所以大大提高了Web应用程序的重用性
3:MVC设计模式可以与xml配置文件有机的结合在一起。在改变三个模块间的工作方式,不需要修改源代码,直接修改配置文件就行了。从页提高了Web应用程序的灵活性


                            MVC的适用范围
1:使用MVC需要精心计划,由于它的内部原理复杂,所以需要花费一些时间去理解它。将Mvc引用到项目中会带来额外的工作量,增加应用程序的复杂性。所以MVC不适合于小型应用程序。但对于开发存在着大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使软件在健壮性、代码重用、可维护性方面上一个新的台阶。尽管在最初构建Mvc框架时会花费一定的工作量,但从长远的角度来看,它会大大的提高后期软件开发的效率


 
                       struts的体系结构
1:用来实现mvc设计模式的框架有很多,比如:webwork,struts等。struts是在j2ee中用来实现mvc模式的主流  框架。后来webwork与struts合并成为struts2.0版本。也即是最高版本。struts的体系结
2:struts的体系结构的实现如图:
      

              jsp页面                  struts-config.xml   |---->Action2----->模型1---->jsp页面1
                |                            |             |
                |                            |             |
              客户端发出http请求------>ActionServlet------>|---->Action1----->模型2---->jsp页面2
                                                           | 
                                                           |
                                                           |----->Action3----->模型3---->jsp页面3
 3:如图所示,struts有两个类。
     A:ActionServlet:这个类是struts的核心控制器。该控制器由struts框架提供,继承自HttpServlet类,         该控制器负责拦截所有Http请求,相当于一个过滤器。然后把拦截的用户请求根据用户需要转发给相           应的Action类进行处理
     B:Action类。这个类通常由用户来提供,该控制器负责接收来自于ActionServlet的请求,并根据该请求调        模式的业务逻辑方法处理请求,并将处理的结果返回给jsp页面显示
     C:在整个struts框架中,ActionServlet类只有一个实例,它相当于普通的过滤器,而且是由struts框架         自动生成的,无需用户去实现,而Action类则需要由用户自己去创建,而且有会有多个Action类的实例
 4:struts各组件:
     View部分:由jsp页面实现,并且struts提供了丰富的标签库,通过使用struts标签库可以快速实现view                 部分,当然也可以不用struts标签库,而用普通的jsp页面
     Controler:有两个控制器。
               A:核心控制器(ActionSerlvet,只有一个,由struts自动创建)
               B:业务逻辑控制器(Action,有多个,由用户自己创建)。业务逻辑控制器负责处理用户请求,                 它本身不具备处理能力,而是调用Model来完成处理。             
     Model部分:由ActionForm和JavaBean组成。其中ActionFrom用于封装用户在jsp页面中所填写的数据。所                  有的用户填写的数据由系统自动封装成ActionFrom对像。该对像被ActionServlet转发给                Action。Action根据从ActionFrom中取得用户所填写的数据,交给JavaBean进行处理。                      ActionFrom实际上也是一个普通的JavaBean。它对应于jsp页面中各个输入数据项
   
  5:struts-config.xml:struts的配置文件.上面讲到每一个用户的请求是通过ActionSerlvet来处理和转发的     那么ActionSerlvet如何决定把用户请求转发给那一个Action呢?这就需要一个配置文件来保存一个struts     中所有的Action。而struts-config.xml这个配置文件就是用来实现以上配置的                                                         

                                struts工作流程
1:客户端填写完jsp页面的数据之后单击提交按钮向服务器发出http请求,客户端所有的请求都被    ActionSerlvet拦截。
2:ActionServlet根据用户的请求在struts-conifg.xml配置文件中查找与之对应的Action,同时把用户的数据填  充给对应的ActionForm,然后把ActionForm一起分发给Action进行处理。
3:Action会自动调用excute方法,在该方法里面Action将从ActionForm里面获取用户填写的数据,并调用模型   (javaBean)进行相应的处理,然后把处理的结果显示在其它的视图(jsp页面)

阅读(318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~