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的 ...
随机推荐
- js,css引用顺序设定
遇到的困难 在ASP .NET MVC里面,会使用_Layout.cshtml来绘制一些全局的公共页面,以及引用相关的css和js而在每个独立的页面中,也有自己独立的js一般来说,希望公共的js放在独 ...
- Call asynchronous method in constructor
using System; using System.ComponentModel; using System.Threading.Tasks; public sealed class NotifyT ...
- 【C#】WPF的xaml中定义的Trigger为什么有时候会不管用,如Border的MouseOver之类的
原文:[C#]WPF的xaml中定义的Trigger为什么有时候会不管用,如Border的MouseOver之类的 初学WPF,知道一些控件可以通过定义Style的Trigger改变要显示的样式,但是 ...
- SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)
原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...
- 【转】python Counter模块
>>> c = Counter() # 创建一个新的空counter >>> c = Counter('abcasdf') # 一个迭代对象生成的counter & ...
- 零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II
原文:零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II 本章将教大家如何制作自己的Button,并以玻璃质感Button为实作案例. ? ...
- mysqldump数据库备份与恢复
mysqldump -u 用户名 -p 数据库名> 备份的文件名 本文中因服务器为多实例,所以在执行登陆等命令时指定了-S参数,即指定其中一个数据库 备份: mysqldump -u root ...
- 从Java和JavaScript来学习Haskell和Groovy
直击现场 记得刚接触计算机的时候,我就受到了两个非常巨大的错误观念的影响,这个观念最初是来自于老师的传授还是学长的教诲已经记不清了,但是直到我工作几年以后,才慢慢有了实际的体会: 学习和使用什么编程语 ...
- 全部的Windows消息对应值
以下是全部的Windows消息, 对于未在MSDN上的消息的WPARAM, LPARAM参数解释正确的给分 [已知 :0x0313, 0x01e2, 0x01e5, 0x01e ...
- 解决C/C++程序执行一闪而过的方法(使用getchar,或者cin.get,不推荐system(“pause”))
简述 在VS编写控制台程序的时候,包括使用其他IDE(Visual C++)编写C/C++程序,经常会看到程序的执行结果一闪而过,要解决这个问题,可以在代码的最后加上system(“pause”).g ...