SpringMVC工作原理

SpringMVC核心组件

按使用顺序排序:

  • DispatcherServlet:SpringMVC的核心组件,是请求的入口,负责协调各个组件的工作。。

  • MultipartyResolver:内存类型(content-Type)为multiparty/*的请求的解析器,例如解析处理文件上传的请求,便于获取参数信息以及上传的文件。

  • HandlerMapping:请求处理匹配器,负责为请求找到合适的HandlerExecutionChain处理器执行链,包含处理器(handler)和拦截器们(interceptors)。

  • HandlerAdapter:处理器适配器。因为处理器handler的类型是Object类,需要有一个调用者来实现handler是怎么被执行。Spring中的处理器的实现多变,比如用户处理器可以实现Controller接口,HttpRequestHandler接口,也可以用@RequestMapping注解将方法作为一个处理器,这就导致SpringMVC无法执行这个处理器。所以这里需要一个处理器适配器,由它执行处理器。

  • HandlerExceptionResolver:处理器异常解析器,将处理器(handler)执行时发送的异常,解析(转换)成对应的Model View结果。

  • RequestToViewNameTranslator:视图名称转换器,用于解析出默认视图名。

  • LocaleResolver:本地化(国际化)解析器,提供国际化支持。

  • ViewResolver:视图解析器,根据视图名和国际化,获得最终的视图View对象。

  • FlashMapManager:FlashMap管理器,负责重定向,板寸参数至临时存储(默认Session)。

小结:

  • Handler 是用来干活的工具;
  • HandlerMapping 用于根据需要干的活找到相应的工具;
  • HandlerAdapter 是使用工具干活的人;

SpringMVC的工作流程

在这里插入图片描述
1、用户通过客户端(浏览器)发起HttpRequest请求到前端控制器DispatcherServlet。
2、DispatcherServlet将用户请求发送给处理映射器(HeadlerMapping),解析请求对应的Handler。
3、 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet。
4、 DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) 。
5、处理器适配器(HandlerAdaptor)会调用具体的Controller。
6、 Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)。
7、HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕。
8、业务处理完毕,我们要把处理后到的结果展示给用户。于是DIspatcherServlet调用ViewResolver,将ModelAndView中的视图名称封装为视图对象。
9、 ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet。
10、DispatcherServlet对象调用视图对象 ,让其自己(View)进行渲染(将模型数据填充至视图中),形成响应对象(HttpResponse)。
11、前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值