Model 1 和 Model 2 (MVC) 架构

2025年3月17日 | 阅读 3 分钟

在开发 Web 应用程序之前,我们需要了解设计模型。 有两种类型的编程模型(设计模型)

  1. Model 1 架构
  2. Model 2 (MVC) 架构

Model 1 架构

Servlet 和 JSP 是开发 Web 应用程序的主要技术。

Servlet 被认为是优于 CGI 的。 Servlet 技术不会创建进程,而是创建线程来处理请求。 创建线程而不是进程的优点是它不会分配单独的内存区域。 因此,许多后续请求可以被 servlet 轻松处理。

Servlet 技术中的问题 如果修改了任何设计代码,则需要重新编译 Servlet。 它没有提供关注点分离。 演示和业务逻辑混在一起。

JSP 克服了 Servlet 的几乎所有问题。 它提供了更好的关注点分离,现在可以轻松分离演示和业务逻辑。 如果修改 JSP 页面,则无需重新部署应用程序。 JSP 提供使用 JavaBean、自定义标签和 JSTL 开发 Web 应用程序的支持,以便我们可以将业务逻辑与我们的 JSP 分开,这使得测试和调试更容易。

model 1 architecture

正如您在上面的图中看到的,有一张图片显示了 model1 架构的流程。

  1. 浏览器发送对 JSP 页面的请求
  2. JSP 访问 Java Bean 并调用业务逻辑
  3. Java Bean 连接到数据库并获取/保存数据
  4. 响应被发送到由 JSP 生成的浏览器

Model 1 架构的优点

  • 易于快速开发 Web 应用程序

Model 1 架构的缺点

  • 导航控制是分散的,因为每个页面都包含确定下一页的逻辑。 如果 JSP 页面名称被其他页面引用,我们需要在所有页面中更改它,这会导致维护问题。
  • 耗时 您需要花费更多时间在 JSP 中开发自定义标签。 这样我们就不需要使用 scriptlet 标签了。
  • 难以扩展 它更适合小型应用程序,但不适用于大型应用程序。

Model 2 (MVC) 架构

Model 2 基于 MVC(Model View Controller)设计模式。 MVC 设计模式由三个模块组成:模型、视图和控制器。

模型 模型表示应用程序的状态(数据)和业务逻辑。

视图 视图模块负责显示数据,即它表示演示文稿。

控制器 控制器模块充当视图和模型之间的接口。 它拦截所有请求,即接收输入并命令 Model / View 相应地更改。

mvc architecture

Model 2 (MVC) 架构的优点

  • 导航控制是集中的 现在只有控制器包含确定下一页的逻辑。
  • 易于维护
  • 易于扩展
  • 易于测试
  • 更好地分离关注点

Model 2 (MVC) 架构的缺点

  • 我们需要自己编写控制器代码。 如果我们更改控制器代码,我们需要重新编译类并重新部署应用程序。

请访问此处以获取使用 Servlet 和 JSP 的 MVC 示例


Model 2 架构的解决方案:可配置的 MVC 组件

它使用声明性方法来定义视图组件、请求映射等。 它解决了 Model 2 架构的问题。 Struts 框架提供了可配置的 MVC 支持。 在 struts 2 中,我们在 struts.xml 文件中定义所有操作类和视图组件。