码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC系列(一)核心:处理请求流程

时间:2014-11-29 17:36:55      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:springmvc

 

本文主要讲解SpringMVC核心:处理请求流程

 

一、SpringMVC简介

    是一种基于JAVA实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。

    解析:

        1、MVC架构模式的思想:将Web层进行指责解耦

        2、基于请求驱动:请求-相应模型

        3、框架的目的:简化开发

 

 

二、SpringMVC架构处理请求流程

      SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。

(一)整体流程

 

bubuko.com,布布扣

 

具体步骤:

        1、  首先用户发送请求————>前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图 2-1 中的 1、2 步骤;

        2、  页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名);图 2-1 中的 3、4、5 步骤;

        3、  前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图 2-1 中的步骤 6、7;

        4、  前端控制器再次收回控制权,将响应返回给用户,图 2-1 中的步骤 8;至此整个结束。

 

(二)核心流程

bubuko.com,布布扣

具体步骤:

        1、  首先用户发送请求——>DispatcherServlet前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

       2、  DispatcherServlet——>HandlerMappingHandlerMapping 将会把请求映射为 HandlerExecutionChain 对象(包含一个 Handler 处理器(页面控制器)对象、多个 HandlerInterceptor 拦截器)对象,通过这种策略模式,很容易添加新的映射策略;

       3、  DispatcherServlet——>HandlerAdapterHandlerAdapter 将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

       4、  HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter 将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个 ModelAndView 对象(包含模型数据、逻辑视图名);

       5、  ModelAndView 的逻辑视图名——> ViewResolver, ViewResolver 将把逻辑视图名解析为具体的 View,通过这种策略模式,很容易更换其他视图技术;

       6、  View——>渲染,View 会根据传进来的 Model 模型数据进行渲染,此处的 Model 实际是一个 Map 数据结构,因此很容易支持其他视图技术;

       7、  返回控制权给 DispatcherServlet由 DispatcherServlet 返回响应给用户,到此一个流程结束。

 (三)总结核心开发步骤

1、  DispatcherServlet 在 web.xml 中的部署描述,从而拦截请求到 Spring Web MVC

2、  HandlerMapping 的配置,从而将请求映射到处理器

3、  HandlerAdapter 的配置,从而支持多种类型的处理器

4、  ViewResolver 的配置,从而将逻辑视图名解析为具体视图技术

5、  处理器(页面控制器)的配置,从而进行功能处理 

 

 到此我们已经简单的了解了 Spring  MVC,接下来的文章会使用实例来具体使用下这个框架。

SpringMVC系列(一)核心:处理请求流程

标签:springmvc

原文地址:http://blog.csdn.net/zhaolijing2012/article/details/41596803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!