1.DispatcherServlet
是一种前端控制器,由框架提供。
作用:统一处理请求和响应。除此之外还是整个流程控制的中心,由 DispatcherServlet 来调用其他组件,处理用户的请求
2.HandlerMapping
处理器映射器,由框架提供。
作用:根据请求的 url、method 等信息来查找具体的 Handler(一般来讲是Controller)
3.Handler
处理器,注意,这个需由工程师自己开发。
作用:在 DispatcherServlet 的控制下,Handler对具体的用户请求进行处理
4. HandlerAdapter
处理器适配器 ,由框架提供。
作用:根据映射器找到的处理器 Handler 信息,按照特定的规则去执行相关的处理器 Handler。
5.ViewResolver
视图解析器,由框架提供。
作用: ViewResolver 负责将处理结果生成 View 视图。 ViewResolver 首先根据逻辑视图名解析成物理图名,即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。
6. View
视图,工程师自己开发
作用:View接口的职责就是接收model对象、Request对象、Response对象,并渲染输出结果给Response对象。
具体流程:
1.首先浏览器发送请求到DispatcherServlet
2.DispatcherServlet将浏览器请求发送给HandMapping
3.HandMapping会根据请求,找到能处理该请求的处理器,将其封装为HandlerExecutionChain对象返回给DispatcherServlet
4.DispatcherServlet根据处理执行链中的处理器,找到能够执行该处理器的处理器适配器HandlerAdapter
5.HandlerAdapter会根据处理器执行controller,返回一个ModelAndView对象
6.DispatcherServlet调用ViewResolver将ModelAndView对象封装为一个View对象
7.DispatcherServlet调用View,让其对View对象进行渲染,返回HttpResponse对象,将其返回给前端