Spring StrutsMVC 总体概述

于现有较成熟的Model-View-Control( MVC)框架而言,其解决的主要问题无外乎下面几部分:
      1. 将Web页面中的输入元素封装为一个(请求)数据对象。
      2. 根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。
      3. 逻辑处理单元完成运算后,返回一个结果数据对象。
      4. 将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。
      现在来看看 Spring MVC是怎么做的。
      一 总体概述
 
      Spring MVC的核心组件是DispatcherServlet,该类既作为整个 MVC框架的前端控制器,同时又负责调动框架中其它组件协同工作完成对一个请求的处理。处理一个请求的大致流程如下:
     1 请求首先由DispatcherServlet截获,DispatcherServlet把请求交给HandlerMapping,寻找相应的逻辑处理单元。
     2 HandlerMapping根据请求的不同,返回一组逻辑处理单元。在 Spring MVC中,逻辑处理单元一般是由0个或多个interceptor和一个controller组成的。
     3 DispatcherServlet首先判断返回的逻辑处理单元中是否有interceptor,如果有,则首先依次调用interceptor的方法。如果没有,则执行controller的方法。
     4 DispatcherServlet通过HandlerAdapter来执行controller的方法,返回一个包含了模型和视图的对象ModelAndView。使用HandlerAdapter的目的是因为 Spring MVC并不关心controller实现了什么样的接口,只要提供相应的HandlerAdapter, Spring MVC就知道该如何执行controller。
     5 如果之前返回的逻辑处理单元包含interceptor,DispatcherServlet又依次(和刚才调用interceptor的顺序相反)调用interceptor的方法。
     6 DispatcherServlet把返回的ModelAndView对象交给ViewResolver,通过ViewResolver返回一个合适的View对象。
     7 最后DispatcherServlet调用View对象的render方法把模型中的数据和视图融合,返回给用户。 
Struts的体系结构
  struts framework是MVC 模式的体现,下面我们就从分别从模型、视图、控制来看看struts的体系结构(Architecture)。
  从视图角度(View)
  主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。目前包括:Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个Taglib。有关它们的详细资料请参考struts用户手册
  从模型角度(Model)
  模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在Struts中,系统的状态主要有ActiomForm Bean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便的与数据库操作
  从控制器角度(Controller)
  在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。
  对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这几个组件就是:ActionServlet。Action Classes,Action Mapping(此处包括ActionForward),ActionFrom Bean。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值