SpringMVC工作原理

什么是SpringMVC

SpringMVC是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图的一种框架。其中核心类是DispatchServlet。

SpringMVC工作原理

工作流程图
1、客户端发起请求(请求中至少包含URL),前端控制器DispatcherServlet接收到请求。
2、DispatcherServlet的任务是将请求发送给SpringMVC控制器(controller控制器是一个用于处理请求的Spring组件)。DispatcherServlet需要知道应该将请求发送给哪一个控制器,所以DispatcherServlet会查询一个或多个处理器映射(handler mapping)去确定请求应该发送到哪儿。而处理器映射器会根据请求中的URL来确定。
PS:HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式。很容易添加新的映射策略。

interface HandlerMapping    //处理请求的映射
//接口实现类
SimlpeUrlHandlerMapping   //通过配置文件,映射Url到Controller
DefaultAnnotationHandlerMapping  //通过注解,映射Url到Controller类上

3、解析到对应的Handler后,会有HandlerAdapter适配器处理。
HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器。

4、HandlerAdapter会根据Handler来调用真正的处理器来处理请求。由处理器(Controller)处理具体的业务逻辑。

interface HandlerAdapter   //处理请求的映射
AnnotationMethodHandlerAdappter    //通过注解,映射Url到具体的Controller方法上。

5、处理器处理完具体的业务逻辑后,通常会返回一个Model和一个View。Model中通常是数据对象,View通常是一个逻辑视图。控制器做的最后一件事就是将模型数据打包,并且标示出用于渲染输出格式的视图名,然后将请求连同模型和视图名发送回DispatcherServlet。

6、DispatcherServlet会使用ViewResolver根据控制器返回的逻辑视图名匹配(查找)真实的视图。

7、DispatcherServlet将返回的model(实际是一个Map数据结构)传给视图。
8、视图根据model渲染输出。
9、DispatcherServlet返回响应给客户端(请求方)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值