首先,让我们来看下下图

SpringMVC解决了View和Controller的交互问题

其中有几个重要组成部分:

(1) DispatcherServlet: 前端控制器    用于接收所有请求,并负责分发请求;

(2) HandlerMapping:映射处理器    根据请求路径映射控制器或控制器的方法,确定请求路径与控制器或控制器中的方法的对应关系;

(3) Controller:控制器         实际处理请求的组件

(4) ModelAndView:模型及视图     控制器的返回结果,包括处理完成后的数据,及最终应该响应给客户端的视图名称;

(5) ViewResolver:视图解析器     根据视图名称得到具体的视图组件。

它的流程可以这样陈述:

首先客户端(Browser)发送请求到服务器,服务器接收到请求将其传入到DispatcherServlet;

(1) DispatcherServlet会拿着请求路径向HandlerMapping询问当前的这个请求路径是否有相应的Controller,如果有,将其返回给DispatcherServlet;

(2) 此时,DispatcherServlet就会去找对应的控制器,将处理的请求发送给Controller(注意:在这一过程可以加入拦截器HandlerInterceptor来设置黑名单来拦截某些不想处理的请求,比如:用户需要登录才能调用此业务的相关请求)

(3) 接下来,Controller将调用业务层Service来处理请求,业务层是处理请求的核心,在Service层可以进行各种判断,如果遇到某个请求偶不满足,可以以抛异常的形式来通知控制层处理。

(4) Service层会调用DAO层接口的方法来执行相应的SQL(注意:对于SpringMVC的解耦一定要清楚,每个层都要隔离开来,DAO层就是用来执行SQL的,不管是否有数据返回,最终的处理都是在Service层)。

(5) Service层处理后会将结果返回给Controller,由控制层来统一处理各种异常,处理完成后,返回了ModelAndView给DispatcherServlet;

(6) DispatcherServlet就会根据ModelAndView取出视图名再去找ViewResolver去查询对应的html或jsp等;

(7) 到此DispatcherServlet可以将响应发送回客户端(Browser),也就完成了业务的处理。

SpringMVC框架的简单理解的更多相关文章

  1. Idea简单SpringMVC框架配置

    前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势,首先Struts是需要对action进行配置,页面发送不同的请求,就需要配置不同的acti ...

  2. 简单实现springmvc框架(servlet+自定义注解)

    个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727 ...

  3. Asp.net框架与SpringMvc框架简单分析

    (此文为自我总结,错误很多请勿借鉴) 1.就前两天分析SpringMvc框架中是通过controler来实现跳转页面,通过mapping来实现数据连接 分析的方法又通过java的类之间进行相互调用,个 ...

  4. SpringMVC笔记——SSM框架搭建简单实例

    落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...

  5. 用Maven搭建简单的SpringMVC框架

    本文会详细阐述如何用Maven搭建一个简单的SpringMVC框架 这里就不介绍SpringMVC框架了,咱们直接来搭建 第一步 创建一个Maven的web项目  这里有一个简单的方法 new一个Ma ...

  6. 教你搭建SpringMVC框架( 更新中、附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  7. 教你搭建SpringMVC框架( 附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  8. 手写迷你SpringMVC框架

    前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请 ...

  9. SpringMVC框架之第一篇

    2.SpringMVC介绍 2.1.SpringMVC是什么 SpringMVC是Spring组织下的一个表现层框架.和Struts2一样.它是Spring框架组织下的一部分.我们可以从Spring的 ...

随机推荐

  1. MyBatis Generator 详解 专题

    idea中有plugin可提高效率: http://www.henryxi.com/use-idea-mybatis-plugin-generate-mapper-files eg: <?xml ...

  2. ajax默认form表单提交,导致实体不识别

    出现位置:实体比较复杂,包含List之类的时候 public class AdvertisementType { /// <summary> /// 广告位名称 /// </summ ...

  3. C#彩色艺术化二维码样式设计(仅说思路)

    原文:C#彩色艺术化二维码样式设计(仅说思路) 仅讲思路,想要源码的请绕道.   一.样式 1.先看各种二维码的样式吧: (1)最简单的样式--黑白样式,如下图: 图1  最平常见到的二维码样式(如果 ...

  4. IdentityServer流程图与相关术语

    概念图   apparch 最常见的交互是:浏览器与web应用程序通信web应用程序与web APIs进行通信基于浏览器的应用程序与web APIs通信原生应用与web APIs通信基于服务的应用程序 ...

  5. 在 __CC_ARM 编译器环境下,使用$Sub$$ 与 $Super$$ 的“补丁”功能

    $Sub$$ 与 $Super$$ 的“补丁”功能(详见 ARM® Compiler v5.06 for µVision® armlink User Guide): 这是一种特殊模式:用于有一个已经存 ...

  6. ASP如何实现注册后发送激活邮件?

    <% Sub Sendemail(title,content,email) Set jmail = Server.CreateObject("JMAIL.Message") ...

  7. Mongodb Compile C++ Driver

    之前发现直接编译mongo源码中的驱动,静态库的驱动会很大,在链接使用的时候会报很多链接错误. 转而直接编译单独提供驱动源码,同样vc2008的版本也要做我的另一篇博文中修改,在这不多说,具体参见: ...

  8. UbuntuServer添加软件源列表

    要使用Ubuntu前,我们一般都要先做好工具!特别是对于安装这一块~~~~ 1.配置前,先做个配置文件的备份: $sudo cp /etc/apt/sources.list /etc/apt/sour ...

  9. django自带的cache

    cache语法 from django.core.cache import cache #存入内存 cache.set("aaa",123) #从内存中获取 cache.get(& ...

  10. Spring AOP APIS

    1:Pointcut API in Spring (1):切点接口定义 org.springframework.aop.Pointcut接口是中心接口.用来将Advice(通知)定位到特定的类和方法. ...