• SpringMVC框架深入(八)--SpringMVC原理


    前言

      SpringMVC Spring 的一个模块,与 Spring 是直接整合在一起
      SpringMVC 是基于 MVC web 框架
      MVC:模型-视图-控制器

    一、MVC模式的演进

      1、标准MVC

       (1)、是架构型的模型;

       (2)、Model:模型,包含数据和行为,提供模型数据查询和模型数据更新等功能,包含数据和业务;

       (3)、View:视图,负责模型的展示;

       (4)、Controller:控制器,让模型进行数据处理,让视图进行数据返回和展示;

       (5)、推模型

      

      

      2、web MVC

       web是一个请求响应的模型,无法做到模型推送数据

      

     

      3、model1
       JSP 负责表现逻辑、业务对象调用、控制逻辑,调用 javaBean 业务对象;

      

     

     

      4、model2

       (1)、在JavaEE里,web MVC就是指model2的模型;

       (2)、servlet作为控制器,JSP作为视图,JavaBean作为模型;

       (3)、控制器的问题

        a、请求参数封装麻烦;

        b、给视图传输共享数据,视图和视图数据严重依赖控制器;

        c、控制器逻辑麻烦(增删改查)

       (4)、模型:业务和数据,service/dao;

       (5)、视图:被绑定为JSP,更换很难;

      

     

    二、web MVC改进

      1、前端控制器:所有的请求都会到达前端控制器;

      2、应用控制器:真正的处理请求,视图管理,业务逻辑管理,策略模式;

      3、页面控制器(动作):功能处理代码(controller);

      4、上下文:所有请求的一些公用的逻辑,数据传递和共享;

      

      生命周期线性图:

      

      总结:

      

    三、SpringMVC框架图

      

      

      1、DispatcherServlet

       (1)、前端控制器,会接收所有请求的servlet;

       (2)、所有的交互都是来自于前端处理器,可以减少耦合;

      2、HandlerMapping

       (1)、处理器映射器;

       (2)、将URL映射到Handler,找到的是经过封装的Handler的类型;

      3、HandlerExecutionChain

       (1)、Handler+interceptor拦截器;

       (2)、方法执行前,视图返回前,方法执行完成后,对其附加上通用功能;

      4、Handler

       (1)、controller

      5、HandlerAdapter

       (1)、接口,找到适配的类来实现Handler的执行,是真正执行Handler的地方;

      6、ViewResolver

       (1)、视图解析,将ModelAndView对应的逻辑视图转换为物理视图;

      7、View

       (1)、接口,不同的视图实现(JSP,freemarker等);

      

      8、SpringMVC灵活的体现

       (1)、拦截器,可自定义拦截器进入执行链;

       (2)、HandlerAdapter:执行controller,可自定义adapter执行各种Handler;

       (3)、ViewResolver:可以解析不同的视图;

    PS:因作者能力有限,如有误还请谅解;

  • 相关阅读:
    uva 12426 Counting Triangles 计算几何
    poj 1195 Mobile phones 二维树状数组
    poj 1039 Pipe 计算几何
    poj 3580 SuperMemo 数据结构
    poj 1031 Fence 计算几何
    ArcEngine 无法嵌入互操作类型
    IDL 读取显示HDF文件
    Sql Server 2005 Com+ 警告处理办法
    C# 自定义控件开发
    ArcEngine 获取HDF文件中的子文件
  • 原文地址:https://www.cnblogs.com/WHL5/p/9150097.html
Copyright © 2020-2023  润新知