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

第二步:前端控制器请求HandlerMapping查找Handler,可以根据xml配置,注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器Handler

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

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

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

第七步:处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括Model和View

第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

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

第十步:前端控制器进行视图渲染,视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域中

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

组件:

1.前端控制器(DispatcherServlet):接受请求,响应结果,相当于转发器,中央处理器。(不需要程序员开发)

2.处理器映射器HandlerMapping:根据请求的url查找Handler。(不需要程序员开发)

3.处理器适配器HandlerAdapter:按照特定规则(HandlerAdapter要求的规则)去执行Handler。(不需要程序员开发)

4.处理器Handler:编写Hander时按照HandlerAdapter的要求去做,这样适配器才能正确执行Handler。(需要程序员开发)

5.视图解析器View resolver:进行视图解析,根据逻辑视图名解析成真正的试图(view)。(不需要程序员开发)

6.视图view:View是一个接口,实现类支持不同的View类型(jsp,freemarker,pdf。。。)。(需要程序员开发)

springmvc框架原理分析的更多相关文章

  1. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  2. SpringMVC学习(一)———— springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  3. springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  4. 【一】SpringMVC框架原理

    springmvc基础知识 1.什么是springMVC 2.springMVC框架原理(掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 3.springmvc入门程序 目的:对前端控制器 ...

  5. Tomcat与SpringMVC结合分析(一)

    关键字: Bootsrap,Catalina,Server,Service,Engine,Host,Context,Wrapper,Valve,Pipeline,ContextConfig,Servl ...

  6. 设计模式(七)——适配器模式(SpringMVC框架分析)

    适配器模式 1 现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了. 2 基本介绍 1) 适配器模式(Adapter Pattern)将某个类 ...

  7. SpringMVC原理分析

    Spring MVC主要包括以下要点: 1:由DispatcherServlet控制的整个流程: 2:注解驱动的控制器,其中包括请求映射.数据的绑定和格式化: 3:文件上传: 4:一些杂项,如静态资源 ...

  8. SpringMVC实例分析

    Spring的MVC模块 Spring提供了自己的MVC框架实现,相比Struts.WebWork等MVC模块,Spring的MVC模块显得小巧而灵活.Spring的MVC使用Controller处理 ...

  9. 看透SpringMVC源代码分析与实践 Markdown记录

    kantouspringmvc 看透SpringMVC中文版电子书,使用Markdown语法记录学习<看透SpringMVC>的内容,方便自己整理知识,并在原作者写作的基础上添加自己的理解 ...

随机推荐

  1. Linux 关于解压

    1.*.tar 用 tar –xvf 解压 2.*.gz 用 gzip -d或者gunzip 解压 3.*.tar.gz和*.tgz 用 tar –xzf 解压 4.*.bz2 用 bzip2 -d或 ...

  2. JSP标准标签库的安装以及自定义标签的创建

    JSTL 库安装 Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip). 官方下载 ...

  3. 通过移位与或非运算获取整形最大值,最小值,以及获取输入的int类型整数的二进制表示

    以上是最终效果 实现类: package com.corejava.chap02; public class IntBin { private int value; public IntBin(int ...

  4. FlightGear 视角控制

    Flightgear提供了非常灵活的模块化功能 这里就简要记录一下视角切换功能 首先,需要了解一下Flightgear中的property tree的主要内容,这里暂略. http://wiki.fl ...

  5. C++跨平台事件机制实现

    今天看到有人在讨论C++标准没有提供类似操作系统层次的事件通知机制,如windows的事件内核对象.其实我想说的事,C++11标准里的互斥量及条件变量已经够帮我们实现类似的功能了. 刚编写了一个事件通 ...

  6. SGU 158.Commuter Train

    一道简单题. 火车停的位置不是在整点就是在二分之一点,坐标*2,然后枚举火车停的位置,计算总距离即可. code: #include <iostream> #include <cma ...

  7. Thread.sleep(0)的意义

    我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用 ...

  8. Bootstrap_表单_图标

    在Bootstrap框架中是通过给元素添加“glyphicon”类名来实现,然后通过伪元素“:before”的“content”属性调取对应的icon编码: <span class=" ...

  9. WebApi Gzip(Deflate) 压缩请求数据

    由于不能直接访问指定数据库,只能通过跳板机查询Oracle数据,所以要做一个数据中转接口, 查询数据就要压缩,于是就找资料,代码如下,其中要注意的是Response.Headers.Remove(&q ...

  10. const 笔记

    .指向const的指针例如:double a=1.01;const double * b=&a;*b=2.1; //这显然是错误的a=2.1; //这是正确的,a和*b的值都会变成2.01,有 ...