一、Web MVC简介

1、经典的MVC架构

    

存在的问题:1、控制器负责流程控制、请求数据整理与校验、模型与视图选择等功能,过于复杂。2、模型层没有进行分层设计

2、改进的MVC设计

1)控制器功能拆分:Front Controller + Application Controller + Page Controller + Context

    

  • 前端控制器:表现层提供统一访问点,主要负责流程控制
  • 应用控制器:负责选择具体的页面控制器(处理器)和具体的视图
  • 页面控制器:功能处理代码,收集参数、封装参数到模型、转调业务对象处理模型、返回逻辑视图名交给前端控制器

2)模型(JavaBean)采用三层架构

    

二、Spring MVC 简介

Spring MVC 框架图:

     

作为Web MVC的实现,职责对应关系为:DispatcherServlet -> 前端控件器, HandlerMapping与ViewResolver -> 应用控制器, Handler -> 页面控制器

具体流程:

  1. 用户请求 -> DispatcherServlet
  2. DispatcherServlet -> HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象
  3. DispatcherServlet  -> HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器
  4. DispatcherServlet  -> 处理器功能处理方法的调用,HandlerAdapter会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理,并返回一个ModelAndView对象(包含模型数据、逻辑视图名)
  5. DispatcherServlet  -> ViewResolver,ViewResolver将把ModelAndView对象的逻辑视图名解析为具体的View
  6. DispatcherServlet  -> View渲染,View会根据传进来的Model模型数据进行渲染
  7. DispatcherServlet  -> 用户

参考:

第一章 Web MVC简介 —— 跟开涛学SpringMVC

第二章 Spring MVC入门 —— 跟开涛学SpringMVC

javaweb学习总结(二十一)——JavaWeb的两种开发模式

Spring MVC学习笔记

Spring MVC 使用介绍(一)—— 概述的更多相关文章

  1. Spring MVC 使用介绍(十五)数据验证 (二)依赖注入与方法级别验证

    一.概述 JSR-349 (Bean Validation 1.1)对数据验证进一步进行的规范,主要内容如下: 1.依赖注入验证 2.方法级别验证 二.依赖注入验证 spring提供BeanValid ...

  2. Spring MVC 使用介绍(十四)文件上传下载

    一.概述 文件上传时,http请求头Content-Type须为multipart/form-data,有两种实现方式: 1.基于FormData对象,该方式简单灵活 2.基于<form> ...

  3. Spring MVC 使用介绍(十三)数据验证 (一)基本介绍

    一.消息处理功能 Spring提供MessageSource接口用于提供消息处理功能: public interface MessageSource { String getMessage(Strin ...

  4. Spring MVC 使用介绍(八)—— 类型转换

    一.概述 spring类型转换有两种方式: PropertyEditor:可实现String<--->Object 之间相互转换 Converter:可实现任意类型的相互转换 类型转换的过 ...

  5. Spring MVC 使用介绍(十二)控制器返回结果统一处理

    一.概述 在为前端提供http接口时,通常返回的数据需要统一的json格式,如包含错误码和错误信息等字段. 该功能的实现有四种可能的方式: AOP 利用环绕通知,对包含@RequestMapping注 ...

  6. Spring MVC 使用介绍(五)—— 注解式控制器(一):基本介绍

    一.hello world 相对于基于Controller接口的方式,基于注解方式的配置步骤如下: HandlerMapping 与HandlerAdapter 分别配置为RequestMapping ...

  7. Spring MVC 使用介绍(九)—— 异常处理

    一.概述 Spring MVC异常处理功能的作用为:捕捉处理器的异常,并映射到相应视图 有4种方式: SimpleMappingExceptionResolver:通过配置的方式实现异常处理,该方式简 ...

  8. spring mvc简单介绍xml版

    spring mvc介绍:其实spring mvc就是基于servlet实现的,只不过他讲请求处理的流程分配的更细致而已. spring mvc核心理念的4个组件: 1.DispatcherServl ...

  9. Spring MVC 9大组件概述

    SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和 DispatcherServlet.HttpServletBean直接继承 ...

随机推荐

  1. .NET-记一次架构优化实战与方案-底层服务优化

    目录 .NET-记一次架构优化实战与方案-梳理篇 .NET-记一次架构优化实战与方案-前端优化 .NET-记一次架构优化实战与方案-底层服务优化 前言 经过上一篇<.NET-记一次架构优化实战与 ...

  2. 浅谈一类无关序列有前缀和性质的统计问题的离线解法 BZOJ3626

    每次询问[l,r]区间,但所有信息是按另一种序列给出的,因此无法使用区间数据结构做这种题.将每个询问改为[1,x],考虑离线,则从1~n依次修改并查询即可. BZOJ3626 给定一颗树,每次询问给定 ...

  3. Python迭代器与格式化

    三元运算 对if-else判断的简写 >>> age = 18 >>> res = "You are so young!" if age < ...

  4. latex 图片标题居中

    1.有一个全局图片标题居中的方法: \usepackage[justification=centering]{caption} 2.如果排版时有的图标题想左对齐,有的想居中,前一个方法就不好了,这里可 ...

  5. agora入门案例

    一,下载agora的WebSDK 二,运行index.html 三,输入appID 1.找到appID 2.页面输入appID,查看效果

  6. 【学习总结】C-翁恺老师-入门-总

    2019-1-2 翁恺老师C入门视频-启程 代码详见GitHub: 目录 第0周:程序设计与C语言 第1周:计算 第2周:判断 第3周:循环 第4周:循环控制 第5周:数据类型 第6周:函数 第7周: ...

  7. Java Core - Map接口

    Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...

  8. HDU 2006 求奇数的乘积

    http://acm.hdu.edu.cn/showproblem.php?pid=2006 Problem Description 给你n个整数,求他们中所有奇数的乘积.   Input 输入数据包 ...

  9. Alibaba Cloud Toolkit for Eclipse & ECS、EDAS 或容器服务 Kubernetes

    UserGuide_V2.1.0http://toolkit.aliyun.com/eclipse/?spm=5176.2020520130.105.3.3c3b697bOHma9f&msct ...

  10. 关于标准的知识 GB ISO 等内容

    1. 来自百度知道: GB:GB 即"国标"的汉语拼音缩写,为中华人民共和国国家标准的意思. ISO:国际标准化组织的英语简称.其全称是International Organiza ...