浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图、用户客户端)与Model(javaBean:封装数据)分开构成了MVC,今天我们浅聊一下SpringMVC的相关组件以及通过源码了解器执行流程
SpringMVC的核心组件 :前端控制器 DispatcherServlet
我们需要先在web.xml里面配置DispatcherServlet,现在我给出两种配置方式。默认以及扩展配置
1. 默认配置方式
使用此种方式配置,springmvc配置文件位于WEB-INF下
① SpringMVC的配置文件默认位于WEB-INF下,默认名称为-servlet.xml
② 设置springMVC的核心控制器所能处理的请求的请求路径
** /:所匹配的请求可以是login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求**
DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
DispatcherServlet
/
2. 扩展方式配置
使用此种配置方式,可以将springmvc配置文件,设置到src/main/resource中
① 可通过init-param标签设置SpringMVC配置文件的位置和名称
② 通过load-on-startup标签设置SpringMVC前端控制器DispatcherServlet的初始化时间
DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springMVC.xml
1
DispatcherServlet
/
==》 推荐大家使用扩展方式配置SpringMVC
使用扩展方式配置,可以指定其配置文件的位置和名称,更加灵活方便
SpringMVC在执行的时候用到的几个重要组件
-
HandlerMapping 处理器映射器
① 在SpringMVC中会有很多请求过来,每个请求都需要有一个Handler处理(Controller)
② HandlerMapping的作用便是找到请求向对应的处理器。 -
HandlerAdapter 处理器适配器
HandlerMapping只是解析URL,通过映射找到对应的Controller,但是真正调用Controller层方法的是HandlerAdapter -
View 服务器托管网Resolver 视图解析器
解析ModelAndView对象,根据逻辑名称找到视图,并把数据渲染到页面上
SpringMVC的工作流程可以分为几个步骤
-
用户发起请求,请求先被Servlet拦截转发给SpringMVC框架。
-
SpringMVC里面的DispatchServlet核心控制器,会接收到请求并转发给HandlerMapping
-
HandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller。
-
如果用户配置拦截器,就会按照顺序执行拦截器里服务器托管网面的preHandle方法
-
由HandlerAdapter执行相应的Contoller层方法,最终返回值被封装成一个ModelAndView对象(视图名称,和视图的模型数据)
-
视图解析器根据名称找到视图,然后把数据模型填充到视图里面再渲染到页面上
DispatcherServlet源代码解析执行流程
接下来,我将会进入到DispatcherServlet的源代码核心部分中带大家看一下其执行流程
package org.springframework.web.servlet.DispatcherServlet
这里,我只截取了最核心的部分,展示给大家,已经能足够展示其工作流程了
如果这篇文章对大家理解SpringMVC的工作流程有了一定帮助,希望兄弟一键三连,再次感谢大家!!!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
请相信自己,请再次相信自己,请一定要相信自己 上一章简单介绍了桥接模式(十), 如果没有看过, 请观看上一章 一. 装饰者模式 引用 菜鸟教程里面的装饰者模式介绍: https://www.runoob.com/design-pattern/decorator…