SpringMVC工作原理

转载 2015年07月09日 22:50:00

上面的是springMVC的工作原理图:

1、客户端请求提交到DispatcherServlet 
2、DipatcherServlet接收到这个请求之后将根据请求的信息,调用HandlerMapping获得该Handler
3、DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。
4、HandlerAdapter 对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
5、HandlerAdapter返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
6、View会根据传进来的Model模型数据进行渲染最终展现出完整的view并返回给客户端。






核心架构的具体流程步骤如下:
1、首先用户 发送请求——>DispatcherServlet, 前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行
处理,作为统一访问点,进行全局的流程控制;
2、DispatcherServlet——>HandlerMapping, HandlerMapping 将会把请求映射为HandlerExecutionChain 对象(包含一
个Handler 处理器(页面控制器)对象、多个HandlerInterceptor 拦截器)对象,通过这种策略模式,很容易添加新
的映射策略;
3、DispatcherServlet——>HandlerAdapter,HandlerAdapter 将会把处理器包装为适配器,从而支持多种类型的处理器,
即适配器设计模式的应用,从而很容易支持很多类型的处理器;
4、HandlerAdapter——>处理器功能处理方法的调用, HandlerAdapter 将会根据适配的结果调用真正的处理器的功能处
理方法,完成功能处理;并返回一个ModelAndView 对象(包含模型数据、逻辑视图名);
5、ModelAndView的逻辑视图名——> ViewResolver , ViewResolver 将把逻辑视图名解析为具体的View,通过这种策
略模式,很容易更换其他视图技术;
6、View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此
很容易支持其他视图技术;
7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
通过伤处
     现在想想这些问题吧
1、请求如何给前端控制器? 这个应该在web.xml 中进行部署描述,在 HelloWorld中详细讲解。
2、前端控制器如何根据请求信息选择页面控制器进行功能处理? 我们需要配置 HandlerMapping进行映射
3、如何支持多种页面控制器呢? 配置HandlerAdapter 从而支持多种类型的页面控制器
4、如何页面控制器如何使用业务对象? 可以预料到,肯定利用 Spring IoC容器的依赖注入功能
5、页面控制器如何返回模型数据? 使用ModelAndView 返回
6、前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染? 使用ViewResolver 进行解析
7、不同的视图技术如何使用相应的模型数据? 因为Model是一个 Map数据结构,很容易支持其他视图技术


Spring MVC开发流程
  1. 新建web project
  2. 添加spring支持
  3. 配置web.xml 添加配置dispatcherservlet
  4. 实现module层
  5. 实现Controller
  6. 实现View层  *.jsp
  7. 修改applicationContext.xml


在此我们可以看出具体的核心开发步骤:
1、DispatcherServlet在web.xml 中的部署描述,从而拦截请求到Spring Web MVC
2、HandlerMapping的配置,从而将请求映射到处理器
3、HandlerAdapter 的配置,从而支持多种类型的处理器
4、ViewResolver 的配置,从而将逻辑视图名解析为具体视图技术
5、处理器(页面控制器)的配置,从而进行功能处理



图四

核心架构的具体流程步骤如下:
1、首先用户 发送请求——>DispatcherServlet, 前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行
处理,作为统一访问点,进行全局的流程控制;
2、DispatcherServlet——>HandlerMapping, HandlerMapping 将会把请求映射为HandlerExecutionChain 对象(包含一
个Handler 处理器(页面控制器)对象、多个HandlerInterceptor 拦截器)对象,通过这种策略模式,很容易添加新
的映射策略;
3、DispatcherServlet——>HandlerAdapter,HandlerAdapter 将会把处理器包装为适配器,从而支持多种类型的处理器,
即适配器设计模式的应用,从而很容易支持很多类型的处理器;
4、HandlerAdapter——>处理器功能处理方法的调用, HandlerAdapter 将会根据适配的结果调用真正的处理器的功能处
理方法,完成功能处理;并返回一个ModelAndView 对象(包含模型数据、逻辑视图名);
5、ModelAndView的逻辑视图名——> ViewResolver , ViewResolver 将把逻辑视图名解析为具体的View,通过这种策
略模式,很容易更换其他视图技术;
6、View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此
很容易支持其他视图技术;
7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
通过伤处
     现在想想这些问题吧
1、请求如何给前端控制器? 这个应该在web.xml 中进行部署描述,在 HelloWorld中详细讲解。
2、前端控制器如何根据请求信息选择页面控制器进行功能处理? 我们需要配置 HandlerMapping进行映射
3、如何支持多种页面控制器呢? 配置HandlerAdapter 从而支持多种类型的页面控制器
4、如何页面控制器如何使用业务对象? 可以预料到,肯定利用 Spring IoC容器的依赖注入功能
5、页面控制器如何返回模型数据? 使用ModelAndView 返回
6、前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染? 使用ViewResolver 进行解析
7、不同的视图技术如何使用相应的模型数据? 因为Model是一个 Map数据结构,很容易支持其他视图技术


Spring MVC开发流程
  1. 新建web project
  2. 添加spring支持
  3. 配置web.xml 添加配置dispatcherservlet
  4. 实现module层
  5. 实现Controller
  6. 实现View层  *.jsp
  7. 修改applicationContext.xml


在此我们可以看出具体的核心开发步骤:
1、DispatcherServlet在web.xml 中的部署描述,从而拦截请求到Spring Web MVC
2、HandlerMapping的配置,从而将请求映射到处理器
3、HandlerAdapter 的配置,从而支持多种类型的处理器
4、ViewResolver 的配置,从而将逻辑视图名解析为具体视图技术
5、处理器(页面控制器)的配置,从而进行功能处理

SpringMVC工作原理概述

SpringMVC是当今最主流的Web MVC框架,没有之一,要做一名合格的JavaWeb工程师,学好它势在必行! 与Struts2原理不同,SpringMVC是通过最基础最传统的servlet来实...
  • zhangliangzi
  • zhangliangzi
  • 2016年02月04日 18:16
  • 16814

SpringMVC工作原理&执行流程

SpringMVC工作原理&执行流程
  • merrylilili
  • merrylilili
  • 2016年11月01日 20:36
  • 1613

SpringMvc 及 Spring 工作原理和作用

SpringMvc 工作原理:          1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 ...
  • my_name_nb
  • my_name_nb
  • 2017年02月10日 14:55
  • 1303

面试之springmvc工作原理

SpringMvc工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;       2. Dispat...
  • w15868676598
  • w15868676598
  • 2016年03月23日 11:00
  • 6868

SpringMVC工作原理

SpringMVC框架介绍     1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应...
  • cswhale
  • cswhale
  • 2013年11月25日 11:19
  • 251501

SpringMVC之原理浅析

SpringMVC主要包括以下要点:        1:由DispatcherServlet控制的整个流程;        2:注解驱动的控制器,其中包括请求映射、数据的绑定和格式化;        ...
  • zmx729618
  • zmx729618
  • 2016年06月01日 10:19
  • 3390

一个真·菜鸟理解的springmvc工作原理

1 springmvc的映射器和适配器 1.1springmvc的映射器 根据客户端请求的url,找到处理本次请求的handler(处理器),将url和controller关联起来 1.2spr...
  • amanicspater
  • amanicspater
  • 2017年05月19日 16:40
  • 341

SpringMVC工作原理(源码分析)

Spring源码分析 我以下呢 就模拟一个请求 从代码上 简单说说 SpringMVC一个请求得流程 当一个请求(request)过来,进入DispatcherServlet中,里面有个方法叫 doD...
  • lu1005287365
  • lu1005287365
  • 2016年08月23日 17:19
  • 13918

Spring MVC工作原理 及注解说明

SpringMVC框架介绍     1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应...
  • u012191627
  • u012191627
  • 2014年12月15日 14:31
  • 12642

Spring MVC 的工作原理

上面是 Spring MVC 的调用过程: 1、客户端发送一个请求到达服务器,服务器对请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器就将...
  • dinglijava
  • dinglijava
  • 2015年01月18日 11:28
  • 10988
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringMVC工作原理
举报原因:
原因补充:

(最多只允许输入30个字)