文章目录
介绍一下 Spring MVC
- Spring MVC 框架提供
模型-视图-控制器(Model-View-Controller)
架构和随时可用的组件,用于开发灵活且松散耦合的 Web 应用程序。 - MVC 模式有助于分离应用程序的不同方面,如输入逻辑、业务逻辑和 UI 逻辑,同时在所有这些元素之间提供
松散耦合
。
Spring MVC 各个组件说明
前端控制器(DispatcherServlet):用户请求会到达前端控制器,它就相当于 MVC 模式中的 C,前端控制器是整个流程控制的中心
,由它调用其它组件处理用户的请求,前端控制器的存在降低了组件之间的耦合性。
处理器映射器(HandlerMapping):处理器映射器负责根据用户请求 url 找到 Handler 即处理器
,Spring MVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式、实现接口方式、注解方式等。
处理器适配器(HandlAdapter):这是适配器模式的应用,通过扩展处理器适配器可以对更多类型的处理器进行执行。
处理器(Handler):处理器是继前端控制器之后的后端控制器
,在前端控制器的控制下 Handler 对具体的用户请求进行处理。由于 Handler 涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发 Handler。
视图解析器(ViewResolver):视图解析器负责将处理结果生成 View 视图
,首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。
视图(View):Spring MVC 框架提供了很多的 View 视图类型的支持,包括:jstlView、freemarkerView、pdfView 等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户
,需要由程序员根据业务需求开发具体的页面。
Spring MVC 运行流程(DispatcherServlet 的工作流程)
- 首先,客户发起一个 url 请求,WEB 容器会将该请求转交给
前端控制器
处理。 前端控制器(DispatcherServlet)
接收到请求后,将根据请求信息交给处理器映射器
。处理器映射器(HandlerMapping)
根据用户的 url 请求查找匹配该 url 的 Handler
,并返回一个执行链
。前端控制器(DispatcherServlet)
再请求处理器适配器(HandlerAdapter)
,由它来请求处理器进行处理,处理器处理完之后会返回ModelAndView
,处理器适配器再将 ModelAndView 返回给前端控制器。前端控制器(DispatcherServlet)
将 ModelAndView 请求视图解析器(ViewReslover)
解析,返回具体视图(View)
。前端控制器(DispatcherServlet)
对 View 进行渲染,即将模型数据填充至视图中。- 最后,
前端控制器(DispatcherServlet)
将页面响应给用户。
介绍一下 WebApplicationContext
- WebApplicationContext 是 ApplicationContext 的扩展类,它具有 Web 应用程序所需的一些额外功能。
@RequestMapping 注解
- 用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。