SpringMVC框架的简单理解
首先,让我们来看下下图

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框架的简单理解的更多相关文章
- Idea简单SpringMVC框架配置
前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势,首先Struts是需要对action进行配置,页面发送不同的请求,就需要配置不同的acti ...
- 简单实现springmvc框架(servlet+自定义注解)
个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727 ...
- Asp.net框架与SpringMvc框架简单分析
(此文为自我总结,错误很多请勿借鉴) 1.就前两天分析SpringMvc框架中是通过controler来实现跳转页面,通过mapping来实现数据连接 分析的方法又通过java的类之间进行相互调用,个 ...
- SpringMVC笔记——SSM框架搭建简单实例
落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...
- 用Maven搭建简单的SpringMVC框架
本文会详细阐述如何用Maven搭建一个简单的SpringMVC框架 这里就不介绍SpringMVC框架了,咱们直接来搭建 第一步 创建一个Maven的web项目 这里有一个简单的方法 new一个Ma ...
- 教你搭建SpringMVC框架( 更新中、附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- 教你搭建SpringMVC框架( 附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- 手写迷你SpringMVC框架
前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请 ...
- SpringMVC框架之第一篇
2.SpringMVC介绍 2.1.SpringMVC是什么 SpringMVC是Spring组织下的一个表现层框架.和Struts2一样.它是Spring框架组织下的一部分.我们可以从Spring的 ...
随机推荐
- 关于ajax入门案例
$.ajax方法 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他ht ...
- jquery 选择标题标签
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第一章 真正的开发中的最佳的做法
原文:[全面解禁!真正的Expression Blend实战开发技巧]第一章 真正的开发中的最佳的做法 从设计者到开发者 设计师创建一个应用程序的布局然后让开发者去实现. 从开发者到设计者 开发者创建 ...
- thinkphp5 phpexcel基本设置
//引入类 header('Content-type: text/html; charset=utf-8'); import('Org.Util.PHPExcel'); import('Org.Uti ...
- Windows 10开发基础——指针事件和操作事件(一)
主要内容: 1.指针事件 2.操作事件 1.指针事件 指针事件由各种活动输入源引发,包括触摸.触摸板.笔和鼠标(它们替代传统的鼠标事件).指针事件基于单一输入点(手指.笔尖.鼠标光标),但不支持基于速 ...
- RDLC报表 分组排序设置
原文:RDLC分组排序设置 RDLC中反复设置表的排序字段,设置数据源排序后绑定均无效. 需要在分组字段右击组属性中,修改对应的排序字段,即可.
- HTTP.SYS 详解 (网络转载)
http.sys 是一个位于Win2003和WinXP SP2中的操作系统核心组件, 能够让任何应用程序通过它提供的接口,以http协议进行信息通讯. 温馨提示:如果用户不慎删除了该驱动文件,不用担心 ...
- 静态编译 Qt 5.6
源码下载 Qt git地址:git://code.qt.io/qt/qt5.git 推荐用 SourceTree 客户端来克隆源码 准备工作 系统 Windows 7 或者 Windows 10 编译 ...
- Qt之界面数据存储与获取(userData)
http://blog.csdn.net/u011012932/article/details/52413012#comments
- 原生Js汉语拼音首字母匹配城市名/自动提示列表
根据城市的汉语名称首字母把城市排序,基本思路: 1.处理数据,按照需要的格式分别添加{HOT:{hot:[],ABCDEFG:{a:[1,2,3],b:[1,2,3]},HIGHLMN:{},OPQR ...