什么是SpringMvc
2024-10-07 12:09:06
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。。。)
最新文章
- LeetCode题解-----Wildcard Matching
- 关于codeblock中一些常用的快捷键(搬运)
- webservice入门(2)开发ws程序
- 使用Servlet和jdbc创建用户登录验证
- vbs脚本总结
- paip.批处理清理java项目冗余jar的方法
- HDU 4057 Rescue the Rabbit(AC自动机+DP)
- Form_Form树形结构HTree的介绍(案例)
- 菜鸟从零学编程(八)——将MyEclipse项目导入到Eclipse
- [Bootstrap] 3. Responsive Gridding (.hidden-sm, visible-md)
- JDBC连接数据库以及简单的操作
- Ubuntu16.04 IDE: 用Vim逐步打造一个IDE
- 总结:如何驱动DS18B20温度传感器
- 一个'&;'引起md5签名不一致问题
- Ruby语法基础(三)
- Integer包装类源码分析
- MySQL 性能管理及架构设计指南
- 【洛谷P1347】排序
- SQLSVR 之 EXISTS
- Java潜在的坑持续总结
热门文章
- [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (1/5)
- 未能加载文件或程序集“WebApi”或它的某一个依赖项。试图加载格式不正确的程序。
- 【记录】解决windows中nginx明明退出了,为什么还能反向代理?CMD强制杀死进程命令
- android 打卡 虚拟定位 sqlite
- Springboot 默认cache
- 《Webkit技术内幕》之页面渲染过程
- 034:DTL常用过滤器(3)
- Test 6.29 T1 预算方案
- Jenkines邮件中添加图片
- OC + RAC (四) combineLatest和merg