spring mvc:基于MVC思想的应用框架的快速入门( 二 )
本文插图
本文插图
http://localhost:8080/spring_mvc/item/itemlist.action
用户请求 , 被前端控制器拦截 , 它会先去找处理器映射器 , 让它帮忙去spring容器中找和请求item/itemlist.action对应的方法 , 找到之后返回包名+类名+方法名形式的Handler , 然后前端控制器 , 可以使用这个Handler去处理器适配器请求执行这个Handler , 经过5、6步之后就得到了ModelAndView , 得到之后 , 它请求视图解析器去解析视图 , 也就是根据ModelAndView的jsp的地址获取到对应的jsp页面 , 然后返回这个页面的view对象(包含数据+页面) , 然后第十步经过渲染 , 就会生成html页面 , 返回给用户
上面是架构 , 我们只需要配置前端控制器 , 然后自己写处理器中的内容 , 然后我们还要写视图 , 也就是jsp页面
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器 。
3、处理器映射器根据请求url找到具体的处理器 , 生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet 。
4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5、执行处理器(Controller , 也叫后端控制器) 。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中) 。
11、DispatcherServlet响应用户
1.1. 组件说明
以下组件通常使用框架提供实现:
u DispatcherServlet:前端控制器
用户请求到达前端控制器 , 它就相当于mvc模式中的c , dispatcherServlet是整个流程控制的中心 , 由它调用其它组件处理用户的请求 , dispatcherServlet的存在降低了组件之间的耦合性 。
u HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求url找到Handler即处理器 , springmvc提供了不同的映射器实现不同的映射方式 , 例如:配置文件方式 , 实现接口方式 , 注解方式等 。
u Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器 , 在DispatcherServlet的控制下Handler对具体的用户请求进行处理 。
由于Handler涉及到具体的用户业务请求 , 所以一般情况需要程序员根据业务需求开发Handler 。
u HandlAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行 , 这是适配器模式的应用 , 通过扩展适配器可以对更多类型的处理器进行执行 。
下图是许多不同的适配器 , 最终都可以使用usb接口连接
本文插图
u ViewResolver:视图解析器
View Resolver负责将处理结果生成View视图 , View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址 , 在生成View视图对象 , 最后对View进行渲染将处理结果通过页面展示给用户 。
u View:视图
springmvc框架提供了很多的View视图类型的支持 , 包括:jstlView、freemarkerView、pdfView等 。 我们最常用的视图就是jsp 。
一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户 , 需要由程序员根据业务需求开发具体的页面 。
- 华为发布首个基于5G MEC云边端协同的工业视觉解决方案
- 嘻哈飞车族腻害,高人都是这样玩SpringBoot整合RabbitMQ
- 上海市浦东模范中学|[浦东]浦东模范中学:“基于素养培育 构建四适课堂”浦兴学区语文主题研讨活动
- 行业互联网华为发布首个基于5G MEC云边端协同的工业视觉解决方案
- 上海市浦东新区竹园小学|[浦东]竹园小学:基于标准 落实要求 均衡导向 集群发展-学校沪东校区接受浦东新区小学沪东学区化课程与教学调研纪实
- 和讯名家 苹果在赌什么?
- 和讯名家苹果在赌什么?
- 柠檬少年CHCC2020干货 | 达实智能杨雪来:基于物联网技术的达实智慧医院整体解决方案
- 英特尔|英特尔披露基于Ice Lake微架构Xeon处理器的安全新特性
- 行业互联网贸泽电子与BittWare签订全球分销协议 分销基于英特尔和Xilinx FPGA的加速卡
