Spring MVC 入门必读

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 运行流程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Strive_MY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值