1、什么是SpringMvc?

SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合

什么是MVC ?mvc在b/s下的应用:

首先请求发送request请求到C(control 接收用户请求响应用户) 然后控制器到M模型(pojo、action、service、dao)层处理 处理结果完了返回控制器 控制器要经过视图渲染  最后返回终端(response)

在b/s系统下模型无法将数据直接填充到视图 还是要返回控制器

MVC是一个设计模式 是开发程序的一种解决方案

前端控制器 DispatcherServlet

处理执行链HandlerExcutionChian

处理器映射器 HandlerMapping

处理器适配器 HandlerAdapter 去执行Handler

前端控制器 DispatcherServlet 请求执行Handler 处理完  返回 ModelAndView (模型和视图的结合体) 前端控制器接收到ModelAndView后请求视图解析器 返回view 前端控制器将视图进行渲染

SpringMvc整个的执行流程:

1、发起请求到前端控制器(DispatcherServlet )

2、前端控制器请求HandlerMapping查找Handler(可以根据xml、注解进行查找)

3、处理器映射器HandlerMapping向前端控制器DispatcherServlet 返回Handler

4、前端控制器DispatcherServlet 调用处理器适配器HandlerAdapter 执行Handler

5、处理器适配器HandlerAdapter 执行Handler

6、Handler执行完给处理器适配器返回ModelAndView

7、处理器适配器向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底层对象 包括model和view)

8、前端控制器请求视图解析器去解析视图

  根据逻辑视图名解析成真正的视图(jsp)

9、视图解析器向前端控制器返回view

10、前端控制器进行视图渲染

  视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域

11、前端控制器向用户响应结果

组件:

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

  作用:接收请求、响应结果 相当于转发器

  有了DispatcherServlet 就减少了其它组件之间的耦合度

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

  作用:根据请求的URL来查找Handler

3、处理器适配器HandlerAdapter

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

  注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler

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

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

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

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

  View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf。。。)

最新文章

  1. LeetCode题解-----Wildcard Matching
  2. 关于codeblock中一些常用的快捷键(搬运)
  3. webservice入门(2)开发ws程序
  4. 使用Servlet和jdbc创建用户登录验证
  5. vbs脚本总结
  6. paip.批处理清理java项目冗余jar的方法
  7. HDU 4057 Rescue the Rabbit(AC自动机+DP)
  8. Form_Form树形结构HTree的介绍(案例)
  9. 菜鸟从零学编程(八)——将MyEclipse项目导入到Eclipse
  10. [Bootstrap] 3. Responsive Gridding (.hidden-sm, visible-md)
  11. JDBC连接数据库以及简单的操作
  12. Ubuntu16.04 IDE: 用Vim逐步打造一个IDE
  13. 总结:如何驱动DS18B20温度传感器
  14. 一个'&'引起md5签名不一致问题
  15. Ruby语法基础(三)
  16. Integer包装类源码分析
  17. MySQL 性能管理及架构设计指南
  18. 【洛谷P1347】排序
  19. SQLSVR 之 EXISTS
  20. Java潜在的坑持续总结

热门文章

  1. [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (1/5)
  2. 未能加载文件或程序集“WebApi”或它的某一个依赖项。试图加载格式不正确的程序。
  3. 【记录】解决windows中nginx明明退出了,为什么还能反向代理?CMD强制杀死进程命令
  4. android 打卡 虚拟定位 sqlite
  5. Springboot 默认cache
  6. 《Webkit技术内幕》之页面渲染过程
  7. 034:DTL常用过滤器(3)
  8. Test 6.29 T1 预算方案
  9. Jenkines邮件中添加图片
  10. OC + RAC (四) combineLatest和merg