Spring MVC 入门必读

导读:本篇文章讲解 Spring MVC 入门必读,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

MVC 设计模式

MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 Web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。

  • 视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。
  • 控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。
  • 模型层(Model):模型对象拥有最多的处理任务,是应用程序的主体部分,它负责数据逻辑(业务规则)的处理和实现数据操作(即在数据库中存取数据)。

下面先看看两种 Web 应用程序的开发模式。即 JSP+JavaBeanServlet+JSP+JavaBean

JSP+JavaBean

JSP+JavaBean 中 JSP 用于处理用户请求,JavaBean 用于封装和处理数据。该模式只有视图和模型,一般把控制器的功能交给视图来实现,适合业务流程比较简单的 Web 程序。

image-20220129192134696

通过上图可以发现 JSP 从 HTTP Request(请求)中获得所需的数据,并进行业务逻辑的处理,然后将结果通过 HTTP Response(响应)返回给浏览器。从中可见,JSP+JavaBean 模式在一定程度上实现了 MVC,即 JSP 将控制层和视图合二为一JavaBean 为模型层

JSP+JavaBean 模式中 JSP 身兼数职,既要负责视图层的数据显示,又要负责业务流程的控制,结构较为混乱,并且也不是我们所希望的松耦合架构模式,所以当业务流程复杂的时候并不推荐使用。

Servlet+JSP+JavaBean

Servlet+JSP+JavaBean 中 Servlet 用于处理用户请求,JSP 用于数据显示,JavaBean 用于数据封装,适合复杂的 Web 程序。

image-20220129192628624

相比 JSP+JavaBean 模式来说,Servlet+JSP+JavaBean 模式将控制层单独划分出来负责业务流程的控制,接收请求,创建所需的 JavaBean 实例,并将处理后的数据返回视图层(JSP)进行界面数据展示

Servlet+JSP+JavaBean 模式的结构清晰,是一个松耦合架构模式,一般情况下,建议使用该模式。

Spring MVC

Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model 进行处理,处理器完成业务处理后返回处理结果。Controller 调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。

Spring MVC 优点

  • 分离角色:Spring MVC 分离每个角色,其中可以由专门的对象来实现模型对象,控制器,命令对象,视图解析器,DispatcherServlet,验证器等。
  • 轻量:它使用轻巧的 Servlet 容器来开发和部署您的应用程序。
  • 强大的配置:它为框架和应用程序类提供了可靠的配置,其中包括跨上下文的轻松引用,例如从 Web 控制器到业务对象和验证器。
  • 快速开发:Spring MVC 促进了快速并行的开发。
  • 可重复使用的业务代码:无需创建新对象,它使我们可以使用现有业务对象。
  • 易于测试:在 Spring 中,通常我们创建 JavaBeans 类,使您可以使用 setter 方法注入测试数据。
  • 灵活的映射:它提供了可轻松重定向页面的特定注释。

Spring MVC 执行流程

image-20220129220858910

Spring MVC 的执行流程如下:

  1. 用户发起一个 HTTP Request 请求,该请求会被提交到 DispatcherServlet前端控制器);
  2. 由 DispatcherServlet 请求一个或多个 HandlerMapping处理器映射器);
  3. 返回一个执行链(HandlerExecutionChain);
  4. DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter处理器适配器);
  5. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
  6. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC 的底层对象,包括 Model 数据模型和 View 视图信息);
  7. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;
  8. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver视图解析器)对视图进行解析;
  9. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
  10. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 Request 域,生成最终的 View(视图);
  11. 视图负责将结果显示到浏览器(客户端)。

搭建 Spring MVC 程序

搭建步骤大致如下:

  1. 创建 Web 应用并引入 JAR 包;
  2. Spring MVC 配置:在 web.xml 中配置 Servlet,创建 Spring MVC 的配置文件;
  3. 创建 Controller(处理请求的控制器);
  4. 创建 View(本教程使用 JSP 作为视图);
  5. 部署运行;

IDEA 新建 Spring MVC 工程项目与 SpringMVC 运行流程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/78363.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!