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的 ...
随机推荐
- linux C Obstack
Obstack介绍 Obstack初始化 在Obstack中申请对象 释放对象 申请growing object 获取Obstack状态 数据对齐 以下是来自wiki对obstack的介绍: Obst ...
- C# HttpWebResponse下载限速
在使用HttpWebResponse请求网络内容的时候,一般如下面这种方法: code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 非生产环境代码,请在实际使用时进行 ...
- PHP 一致性Hash
一致性HASH 好久没有写文章了,最近忙着公司的事情,也一拖再拖.这篇一致性hash是很久之前就有的一篇算法,记录一下,这周写个基于该算法的Redis中间件. HASH算法的精髓就在于打散原本杂乱无序 ...
- Android零基础入门第50节:StackView卡片堆叠
原文:Android零基础入门第50节:StackView卡片堆叠 上一期学习了AdapterViewFilpper的使用,你已经掌握了吗?本期开始学习StackView的使用. 一.认识StackV ...
- 1.预处理,生成预编译文件(.文件): Gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s文件): Gcc –S hello.i –o hello.s 3.汇编,生成目标文件(.o文件): Gcc –c hello.s –o hello.o 4.链接,生成可执行文件: linux笔记
1 动态查看日志 tail -f filename tail -1000f filename 2 解压当前目录内容为xxx.zip zip -r xxx.zip ./* 3 查看内存使用情况 fre ...
- BackgroundWorker 简单使用教程 多个线程的创建
原文:BackgroundWorker 简单使用教程 多个线程的创建 BackgroundWorker是一个非常不错的线程控件,能避免界面假死,让线程操作你想要做的事,它学习起来很简单,但是能实现很强 ...
- WPF 用Main函数方式启动程序
原文:WPF 用Main函数方式启动程序 WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml&quo ...
- .NET错误提示之:无法更新EntitySet“TableName”因为它有一个DefiningQuery
使用LINQ 进行提交数据时发生的错误提示 原因:提交的对象表 没有设主键.
- Linux下的wfopen(手工打造)
Of Linux on wfopen (open wide-character version of the file name and mode) to achieve Not directly a ...
- WCSTOMBS 函数不支持中文件的解决方法(设置代码页)
代码页没有进行设置.需要调用locale.h 中定义的一个函数设置默认的代码页 _tsetlocale(LC_ALL,_T(""));//设置代码页 wcstombs(sendB ...