springmvc体系结构分析
架构流程
1、用户向前端控制器dispatcher servlet发送请求
2、dispatcher servlet收到请求后调用handler映射处理器映射器。
3、处理器映射器根据请求url找到具体处理器,生成处理器对象,生成处理器阻塞器(如果有),并返回dispatcher servlet。
4、dispatcher servlet通过处理程序适配器调用处理器
5、执行处理器(也称为控制器、后端控制器。
6、控制器执行完成后返回ModelAndView
7、处理程序适配器将控制器的运行结果ModelAndView返回给dispatcher servlet
8、dispatcher servlet将ModelAndView传递给ViewReslover视图解析器
9、ViewReslover分析后返回具体的View
10、dispatcher servlet渲染视图。 这意味着将模型数据填充到视图中。
11、dispatcher servlet响应用户
组件说明
dispatcher servlet :前端控制器
当用户请求到达前控制器时,它相当于mvc模式中的c。 dispatcher servlet是整个过程的控制中心,它调用其他组件来处理用户的请求。 dispatcher servlet的存在会降低组件之间的耦合性。 处理程序映射:处理器映射器
处理程序映射负责根据用户的请求url找到处理程序处理器。 springmvc提供了各种映射器,用于实现各种映射方法,包括性能分析方法、接口方法和注释方法。 处理程序:处理器
Handler是紧跟dispatcher servlet前端控制器的后端控制器,在dispatcher servlet控制下,Handler处理特定用户请求。
因为处理程序涉及特定用户的业务要求,所以程序员一般需要根据业务需求开发处理程序。 手持适配器:处理器适配器
使用处理程序适配器运行处理器。 这是适配器模式的APP应用程序,扩展适配器可以运行更多类型的处理器。
下图显示了可以使用usb界面连接到ViewResolver的各种适配器。 视图解析器
视图资源器在视图视图中生成处理结果。 View Resolver首先基于逻辑视图名称解析为作为物理视图名称的具体页面地址,然后生成View视图对象,最后渲染View,并通过页面向用户呈现处理结果。 视图:视图
springmvc框架支持多种视图类型,包括jstlView、freemarkerView和pdfView。 我们最常用的视图是jsp。注意
在springmvc的每个组件中,处理器映射器、处理器适配器和查看器被称为springmvc的三个主要组件。
用户需要开发的组件是handler、view和前端控制器的配置
为什么我们只配置了前端控制器和写了处理器,springmvc架构就能执行呢?
默认情况下,框架中加载了这些组件,因此当当前控制器加载到spring容器中时,这些组件将自动加载到容器中,无需进行任何配置即可使用
默认情况下加载的配置文件
dispatcher servlet.properties配置文件
处理器映射器和处理器适配器可以手动配置负载
! -配置处理器映射器--bean class=' org.spring framework.web.servlet.MVC.method.annotation.requestmappinghandlermaping ork.web.servlet.MVC.method.annotation.requestmappinghandleradapter '/requestmappinghandleradapter
! -评论驱动----MVC : annotation-driven/http://www.Sina.com /
在Controller类中,如果每个方法都有一个页面跳转,那么如果重复写了太多相同的页面路径,就很麻烦了,所以只需要使用查看器为页面设置前缀和后缀,然后在写跳转页面时写页面名称
modelandview.set viewname (“/we B- INF/JSP/item list.JSP”)
视图解析器设置
! - example : prefix='/we B- INF/JSP/',suffix='.jsp ',viewname=' test '-'/we B- INF/JSP/test.JSP ' -设置逻辑视图前缀--property name=' prefix ' value='/we B- INF/JSP/' /! -配置逻辑视图后缀--property name=' suffix ' value='.JSP '/bean