什么是 Spring MVC

  学习某一样东西之前,我们一定要大致知道这个东西是什么,能干什么,为什么要用它。

  Spring MVC 是一个开源平台,一个基于 Spring 的 MVC 框架,它支持基于 Java 开发 Web 应用程序。MVC 架构很利于开发灵活、低耦合的 Web 应用程序组件。

  M(Model)模型,应用程序的数据载体。通常是一些 POJO。

  V(View)视图,用于渲染一些模型的数据,一般是用来生成用户浏览器的可以解释的HTML。

  C(Controller)控制器,用于处理用户的请求并构建相应的模型,然后交给视图渲染。

  Spring MVC的优点:

    (1)使用简单;

    (2)能够很容易的开发出性能很好的程序;

    (3)灵活,易于扩展;

    (4)具有 Spring 的一些特性;

    (5)支持 REST 风格;

  Spring MVC的缺点:

    (1)很难脱离容器进行独立运行;

    (2)需要编写一些对应的 web.xml配置;

 

Spring MVC 请求流程

  

springmvc 缺点 springmvc的理解 优缺点_视图解析器

                     (Spring MVC 请求处理流程)

  上图流程涉及到的几个组件的功能说明:

   DispatcherServlet(前端控制器):接收用户请求并返回请求结果。它控制着整个执行流程,对各个组件进行调度,降低组件之间的耦合,就像是一个团队的组织人。

   HandlerMapping(处理器映射器):根据用户的请求 URL,根据 XML 配置或注解找到对应的处理器 Handler。

 HandlerAdapter(处理器适配器):根据映射器找到的 Handler 完成调用处理器中的方法。

   Handler(处理器):处理请求的主要逻辑,返回模型数据和视图。

 ViewResolver(视图解析器):解析具体的视图。通过 ModelAndView 中的 View 将逻辑视图名解析为真正的 视图。

  请求具体步骤如下:

前端控制器(DispatcherServlet)拦截

查找Handler

找到相应Handler,可能包含多个Interceptor拦截器,返回给前端控制器

执行相应的Handler

交由对应Handler处理器执行

返回ModelAndView对象给处理器适配器

返回给前端控制器(DispatcherServlet)

请求视图解析器,解析对应的视图

匹配相应的视图结果,反回给前端控制器

视图渲染,将Model数据填充到View视图中,生成最终视图

返回请求结果