SpringMVC架构:

组件:

DIspatcherServlet:前端控制器。相当于mvc模式的c,是整个流程控制的中心,负责调用其他组件处理用户的请求,降低了组件之间的耦合性。

HandlerMapping:处理器映射器。负责根据url找到Handler即处理器,SpringMVC提供了不同的映射器实现不同映射方式如配置文件方式,实现接口方式,注解方式。

HandleAdapter:处理器适配器。通过HandlerAdapter对处理器Handler进行执行,这是适配器模式的应用。

Handler:处理器。是继DispacherSevlet前端控制器的后端控制器,在DispatcherServlet的控制下,Handler对具体的用户请求进行处理,返回ModelAndView给适配器,由适配器再返回给前端控制器。

ViewResolver:视图解析器。负责将处理结果生成view视图,ViewResolver首先根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成view视图对象,最后对View进行渲染将结果通过页面展示给用户。

View视图:SpringMVC框架提供了很多的View视图类型的支持,比如:jstlView等待,常用视图是jsp.

架构流程:

1 用户发送请求到前端控制器DispacherServlet

2 DispacherServlet收到请求调用HandleMapping处理映射器

3 处理映射器根据请求url找到具体的处理器,生成处理器对象以及处理器拦截器并返回给DispacherServlet

4 DispatcherServlet通过HandlerAdaptec处理器适配器调用处理器

5 执行处理器(Controller),执行得到ModelAndView,返回给DispacherServlet

6 DispatcherServlet将ModelAndView传给ViewResolver视图解析器,解析后返回具体View

7 DispatcherServlet对view进行渲染视图(将模型数据填充至视图中),响应给用户

组件扫描器:省去在Spring容器中配置每个Controller类的繁琐。配置之后在Controller类上添加@Controller注解即可。

注解驱动:免去配置注解器映射器和注解器适配器的繁琐

视图解析器:配置试图的前缀和后缀

SpringMVC架构&组件&执行流程的更多相关文章

  1. 步步深入MySQL:架构->查询执行流程->SQL解析顺序!

    一.前言 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序 ...

  2. springMVC的架构与执行流程

    SpringMVC术语 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU. 处理器映射器(HandlerMapping):根据URL去查找处理器 处理器(Han ...

  3. Mybatis功能架构及执行流程

    原文地址:http://blog.51cto.com/12222886/2052647 一.功能架构设计 功能架构讲解: 我们把Mybatis的功能架构分为三层: (1) API接口层:提供给外部使用 ...

  4. springmvc与struts2执行流程比较

    之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以 及struts2与spring-mvc的差别. 1.stru ...

  5. MapReduce架构与执行流程

    一.MapReduce是用于解决什么问题的? 每一种技术的出现都是用来解决实际问题的,否则必将是昙花一现,那么MapReduce是用来解决什么实际的业务呢? 首先来看一下MapReduce官方定义: ...

  6. SpringMVC学习笔记:SpringMVC框架的执行流程

    一.MVC设计模式 二.SpringMVC框架介绍 三.SpringMVC环境搭建 四.SpringMVC框架的请求处理流程及体系结构

  7. SpringMVC启动和执行流程

    Spring框架大家用得很多,相当熟悉,但是我对里面的运作比较好奇,例如bean的加载和使用,和我们定义的配置文件有什么联系;又例如aop在什么时候起作用,原理又是怎样.经过一个了解后,整理了启动和执 ...

  8. SpringMVC拦截器执行流程

    1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...

  9. mysql(一)--mysql架构和执行流程

    1. 一条查询 SQL 语句是如何执行的? 我们的程序或者工具要操作数据库,第一步要做什么事情? 跟数据库建立连接.   1.1. 通信协议 首先,MySQL 必须要运行一个服务,监听默认的 3306 ...

随机推荐

  1. 洛谷 P1880 [NOI1995]石子合并(区间DP)

    嗯... 题目链接:https://www.luogu.org/problem/P1880 这道题特点在于石子是一个环,所以让a[i+n] = a[i](两倍长度)即可解决环的问题,然后注意求区间最小 ...

  2. 使用pycharm创建Django项目,'django-admin' 不是内部或外部命令

    报错信息如下: (笔者的电脑为win10,python3.7,django 2.2.6 ) 第一种情况的解决方案:没有配置环境变量,Django安装之后,需要配置环境变量,命令django-admin ...

  3. ROS学习资源

    1.ROS机器人操作系统自主学习实践环境 https://www.shiyanlou.com/courses/854 2.ROS官方网站 http://wiki.ros.org/ ROS中文官方网站 ...

  4. Cisco AP-格式化AP

    故障情况:APC11-AP04#sho capwap ip config LWAPP Static IP ConfigurationIP Address         172.17.239.204I ...

  5. 【JS 日期】获取当前日期时间

    获取当前日期时间 <!DOCTYPE html> <html> <head></head> <body> <script> wi ...

  6. 【Fine学习笔记】Xcode的快捷方式

    Xcode快捷键 文件 CMD + N: 新文件:  CMD + SHIFT + N: 新项目: CMD + O: 打开: CMD + S: 保存:  CMD + SHIFT + S: 另存为: CM ...

  7. FastDFS文件上传和下载流程

    文件上传流程 客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名.  组名:文件上传后所在的 ...

  8. vue 之 axios Vue路由与element-UI

    一. 在组件中使用axios获取数据 1. 安装和配置axios 默认情况下,我们的项目中并没有对axios包的支持,所以我们需要下载安装. 在项目根目录中使用 npm安装包 npm install ...

  9. preg_replace相关问题

    preg_replace preg_replace 函数执行一个正则表达式的搜索和替换. 语法: preg_replace ( mixed $pattern , mixed $replacement ...

  10. PTA的Python练习题(十)

    从 第3章-22 输出大写英文字母 开始 1. a=str(input()) b='' for i in a: if 'A'<=i<='Z' and i not in b: b=b+i i ...