• Spring MVC及与structs MVC对比


    一、Spring MVC

    MVC: Model + View + Controller(数据模型+视图+控制器)

    三层架构: Presentation tier + Application tier + Data tier(展现层+应用层+数据访问层)

    MVC只存在于三层架构的展现层,三层架构是由Spring框架负责管理的。Service层、DAO层,则反馈在应用层和数据访问层

    M实际上是数据模型,是包含数据的对象。在Spring MVC里,有一个专门的类叫Model,用来和V之间的数据交互、传值; 

    V指的是视图页面,包含JSP、freeMarker、Thymeleaf等;

    C就是控制器(Spring MVC的注解@Controller的类)。

    二、原理:


     

    解析步骤:

    第一步:用户发起请求到前端控制器(DispatcherServlet

    第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handler或称Controller):通过xml配置或者注解进行查找

    第三步:找到之后,处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain

    第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)

    第五步:处理器适配器去执行Handler

    第六步:Handler执行完给处理器适配器返回ModelAndView

    第七步:处理器适配器向前端控制器返回ModelAndView

    第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析

    第九步:视图解析器向前端控制器返回View

    第十步:前端控制器对视图进行渲染

    第十一步:前端控制器向用户响应结果

    Tip:

    前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。

    处理器映射器(HandlerMapping):根据URL去查找处理器

    处理器(Handler):(需要程序员去写代码处理逻辑的)

    处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)

    视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面。

    三、struts组件的MVC实现   

      View部分:由jsp页面实现,并且struts提供了丰富的标签库,通过使用struts标签库可以快速实现view部分,当然也可以不用struts标签库,而用普通的jsp页面。
      Controler:有两个控制器。
           A:核心控制器(ActionSerlvet,只有一个,由struts自动创建)
           B:业务逻辑控制器(Action,有多个,由用户自己创建)。业务逻辑控制器负责处理用户请求,它本身不具备处理能力,而是调用Model来完成处理。

      Model部分:由ActionForm和JavaBean组成。其中ActionForm用于封装用户在jsp页面中所填写的数据。所有的用户填写的数据由系统自动封装成ActionForm对象。该对象被ActionServlet转发给Action。Action根据从ActionForm中取得用户所填写的数据,交给JavaBean进行处理。ActionForm实际上也是一个普通的JavaBean。它对应于jsp页面中各个输入数据项 。

    struts工作流程

    简述:

    jsp页面向服务器发出请求,被ActionServlet拦截。ActionServlet根据用户的请求在struts配置文件中查找与之对应的Action,同时将用户的数据填充给对应的ActionForm,然后将ActionForm一起分发给Action进行处理,Action会自动调用相应的方法,将从ActionForm里面获取用户填写的数据,并调用模型(javaBean)进行相应的处理,然后把处理的结果显示在jsp页面中。

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

  • 相关阅读:
    重力感应GSensor 方向介绍
    php图片保存、下载
    AJAX技术在PHP开发中的简单应用
    php 面向对象基础
    用PHP处理多个同名复选框
    去掉codeigniter地址中的index.php
    PHP中如何运用ini_set和ini_get()
    Windows 7下PHP配置环境
    zend_application 说明
    PHP写的域名查询系统whois
  • 原文地址:https://www.cnblogs.com/amunamuna/p/6207485.html
Copyright © 2020-2023  润新知