前端控制器(DispatcherServlet): (不需要我们开发)接收请求,响应结果,相当于转发器,*处理器。减少了其它组件之间的耦合度。
springmvc.xml是SpringMVC的一个全局配置文件,配置
处理器映射器(HandlerMapping): (不需要我们开发) 根据请求的 url 查找 Handler
处理器适配器(HandlerAdapter): 按照特定规则(HandlerAdapter要求的规则)去执行Handler
视图解析器(ViewResolver): (不需要我们开发)根据逻辑视图名解析成真正的视图(view)
Handler(处理器,平常叫做controller): 编写Handler时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行Handler
<!-- 注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> <!-- 实际开发时,使用mvc:annotation-driven,它代替了上边注解映射器和注解适配器配置,而且默认加载很多的参数绑定方法, 比如json转换解析器 --> <!-- <mvc:annotation-driven></mvc:annotation-driven>-->
第一步:发起请求到前端控制器(DispatcherServlet)
二 :前端控制器(DispatcherServlet) 请求 处理器映射器(HandlerMapping) 查找 Handler(可以根据 xml 配置、注解进行查找)。
三 :处理器映射器(HandlerMapping) 向 前端控制器(DispatcherServlet) 返回 Handler
第四步:前端控制器(DispatcherServlet) 调用 处理器适配器(HandlerAdapter) 去执行 Handler
五步:处理器适配器(HandlerAdapter) 执行 Handler
六步:Handler 执行完成后 给 处理器适配器(HandlerAdapter) 返回 ModelAndView
七步:处理器适配器(HandlerAdapter) 向 前端控制器 返回 ModelAndView(ModelAndView 是 springmvc 框架的一个底层对象,包括 Model 和 view)
第八步:前端控制器 请求 视图解析器(ViewResolver) 去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
九步:视图解析器向前端控制器返回 View
第十步:前端控制器进行视图渲染,将 模型数据(在 ModelAndView 对象中)填充到 request 域
十一步:前端控制器向用户响应结果