SpringMVC架构原理解析

SpringMVC架构原理解析

这里写图片描述

SrpringMVC处理步骤:
1. 用户发起request请求到前端控制器DispatcherServlet
2. 前端控制器DispatcherServlet请求HandlerMapping来查找Handler,可以查找xml配置,注解来进行查找

比如我在web.xml中配置dispatcherServlet 里头配置contextConfigLocation->applicationContext.xml 而这个xml文件里我注册了一个HandlerMapping处理映射器 里头我设置一个请求叫say.do 当我在url里请求http://localhost:/项目名/say.do 这时候HandlerMapping就查找到了我刚注册的Handler

3. 处理器映射器向前段控制器返回Handler
4. 前端控制器调用专门负责处理Handler的处理器适配器HandlerAdapter去执行Handler
5. 处理器适配器HandlerAdapter去执行Handler
6. Handler执行完给适配器返回MoldelAndView
7. 适配器向前端控制器DispatcherServlet返回ModelAndView
8. 前端控制器DispatcherServlet请求视图解析器去进行视图解析 根据逻辑视图名解析成真正的物理视图(如jsp)
9. 视图解析器给前段控制器返回view
10. 前端控制器进行视图渲染视图渲染也即是将模型数据(在ModelAndView当中)填充到request域
11. 前段控制器向用户相应结果


重要组件

  • DispatcherServlett(程序员不需要开发)
    作用:接受请求request,相应请求response,相当于转发器,调度服务用的
    有了前段控制器,减少了其他组件之间的耦合度。

  • 处理器映射器HandlerMapping (程序员不需要开发)
    作用:根据请求的url查找Handler

  • 处理器Handler(需要程序员开发) 也就是我们在在Controller层写的Controller类
  • 处理器适配器HandlerAdapter(程序员不需要开发)
    作用:按照特定的规则(HandlerAdapter要求的规则)去执行Handler
  • 视图解析器(程序员不需要开发)
    作用:进行逻辑视图,根据逻辑视图名解析成真正的视图(View)
  • 视图View(需要程序员开发,比如写jsp)
    View是一个接口,实现类支持不同的View类型(jsp,freemaker,pdf…)

猜你喜欢

转载自blog.csdn.net/Anonymous_GL/article/details/81220554