转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html

前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

1.什么SpringMVC

Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一个模块。SpringMVC和Spring无需通过中间整合层进行整合。

SpringMVC是一个基于mvc的web框架。

2.mvc在b/s系统下的应用

(1)用户发起request请求至控制器(Controller)

    控制接收用户请求的数据,委托给模型进行处理。

(2)控制器通过模型(Model)处理数据并得到处理结果

   模型通常是指业务逻辑

(3)模型处理结果返回给控制器

(4)控制器将模型数据在视图(View)中展示

  web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。

(5)控制器将视图response响应给用户

   通过视图展示给用户要的数据或处理结果。

3.SpringMVC框架

3.1架构流程

(1)用户发请求至前端控制器(DispatcherServlet)

(2)DispatcherServlet接收到请求调用HandlerMapping处理器映射器

(3)处理器映射器根据请求url找到具体的处理器(Handler,可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

(4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

(5)执行处理器(Controller,也叫后端控制器)

(6)Controller执行完后返回ModelAndView

(7)HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器

(9)ViewResolver解析后返回具体View

(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

(11)DispatcherServlet响应用户

3.2组件说明

(1)前端控制器DispatcherServlet(不需要程序员开发)

    作用:接收请求、响应结果,相当于转发器,中央处理器。

     有了DispatcherServlet可以减少其它组件之间的耦合度。

(2)处理器映射器HandlerMapping(不需要程序员开发)

     作用:根据请求的url查找Handler

(3)处理器适配器HandlerAdapter

     作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

(4)处理器Handler(需要程序员开发)

     注意:编写Handler时按照HandlerAdapter的要求去做,注意适配器才可以去正确执行Handler。

(5)视图解析器Viewresolver(不需要程序员开发)

    作用:进行谁解析,根据逻辑视图名解析成真正的视图(View)

(6)视图View(需要程序员开发jsp)

      View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf....)

如果此文对您有帮助,微信打赏我一下吧~

Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构的更多相关文章

  1. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  2. Spring+SpringMVC+MyBatis深入学习及搭建(十三)——SpringMVC入门程序(二)

    1.非注解的处理器映射器和适配器 1.1非注解的处理器映射器 前面我们配置的org.springframework.web.servlet.handler.BeanNameUrlHandlerMapp ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  4. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)--S ...

  5. Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十三)--S ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...

  7. Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——My ...

  8. Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6878529.html 前面有讲到Spring+SpringMVC+MyBatis深入学习及搭建(三)——My ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(五)——动态sql

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6908763.html 前面有讲到Spring+SpringMVC+MyBatis深入学习及搭建(四)——My ...

随机推荐

  1. java8 Lambda表达式的新手上车指南(1)

    背景 java9的一再推迟发布,似乎让我们恍然想起离发布java8已经过去了三年之久,java8应该算的上java语言在历代版本中变化最大的一个版本了,最大的新特性应该算得上是增加了lambda表达式 ...

  2. linux系统中.bashrc的妙用

    一.有何作用 .bashrc - The individual per-interactive-shell startup file. .bashrc - 主要保存个人的个性化设置,如命令别名.路径等 ...

  3. 【openstack N版】——摘除一个计算节点

    1.查看计算节点 #查看所有计算节点 [root@open-control01 ~]# nova service-list+----+------------------+-------------- ...

  4. MYSQL设置远程账户登陆总结

    为了给MYSQL用户设置远程连接权限,经历的种种错误总结 ERROR 2003 (HY00 原因是MySQL考虑到安全因素,默认配置只让从本地登录 打开 /etc/mysql/my.cnf 文件,找到 ...

  5. C# Winform中的窗体传值

    关于C#winform窗体之间的传值有以下几种做法 1 通过构造函数传值 2 属性传值 以上两种方法不早详细介绍. 3 通过事件传值,委托传值 首先看一下通过委托传值吧. 1,创建两个窗体,分别是Fo ...

  6. Ehcache 的简单实用 及配置

    Ehcache 与 spring 整合后的用法,下面是一个Ehcache.xml配置文件: 通用的缓存策略 可以用一个 cache: <?xml version="1.0" ...

  7. sqlmap连接Mysql实现getshell(原创)

    前言 昨天群友发了一知乎的帖子..才发现sqlmap玩了那么久有些玩意我居然没玩过...然后看着群友玩= =今天也想试试. 0x01 首先得知道这个玩意,sqlmap -help,不说大家也懂搜嘎. ...

  8. JAVA并发编程实战---第二章:线程安全性

    对象的状态是指存储在状态变量中的数据.对象的状态可能包括其他依赖对象的域.例如HashMap的状态不仅存储在HashMap本身,还存储在许多Map.Entry对象中.对象的状态中包含了任何可能影响其外 ...

  9. VS2013各版本激活密钥

    Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥) ...

  10. c语言项目开发流程一部曲

    一.c项目开发总体分如下图所示 二.对每一步的解析 1.需求文档分析,本例以电子词典作为例子 列出每一个需求以及每一个需求的每一个特点,将其归纳 为一张表. 2.设计数据结构 设计数据结构,也就是确定 ...