📜  模型1和模型2(MVC)架构

📅  最后修改于: 2021-01-11 02:44:15             🧑  作者: Mango

模型1和模型2(MVC)架构

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

  • 模型1架构
  • 模型2(MVC)架构

模型1架构

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

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

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

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

如您在上图中所看到的,有一些图片显示了model1体系结构的流程。

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

模型1架构的优势

  • 轻松快捷地开发Web应用程序

模型1架构的缺点

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

模型2(MVC)架构

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

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

视图视图模块负责显示数据,即代表演示。

控制器控制器模块充当视图和模型之间的接口。它拦截所有请求,即接收输入和对“模型/视图”的命令以进行相应更改。

模型2(MVC)架构的优势

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

模型2(MVC)架构的缺点

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

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

模型2体系结构的解决方案:可配置的MVC组件

它使用声明性方法定义视图组件,请求映射等。它解决了模型2体系结构的问题。 Struts框架提供了可配置的MVC支持。在struts 2中,我们定义所有动作类并在struts.xml文件中查看组件。