2

我正在为一个大学项目开发​​一个 Web 应用程序,并且有人告诉我们使用 Java EE 并提供文档。我无法理解如何在多层架构中适应 MVC 模式以及如何描述它们,因为我在互联网上发现了不同的文章。

根据我阅读的内容(尤其是关于 sun.java.com 上的 BluePrints),我应该使用 4 层(客户端、Web、业务和数据)并且业务逻辑在 Web 和业务层之间划分,不是吗?然后我可以使用 MVC 模式来组织这两层:

  • 模型 = 实体 bean
  • 视图 = JSP
  • 控制 = servlet 和会话 bean

我对吗?

4

2 回答 2

4

Java EE 中有几种 MVC 方法。

较旧的方法(但取决于上下文仍然有效)将 JSP 用于视图,将 Servlet 用于控制器。经常争论模型到底是什么,但它通常被认为是返回域实体(例如 JPA 实体表示)的服务(例如由 EJB 会话 bean 表示)。

在 Java EE 的现代版本中,有一个名为 JSF 的默认 MVC 框架。按照这个框架,Facelets 用于视图并给出了控制器(你不需要实现它)。

有一个中间概念叫做backing bean,它通常被称为模型,但它本身并不是一个纯粹的模型。相反,它委托给真实模型(例如 EJB 服务)。支持 bean 还可以承担一些控制器职责(发出重定向,或将消息放入某种队列以供视图显示)。

有时人们认为创建 Web 和业务层过于矫枉过正,但绝对不必如此。这通常只是应用健全的面向对象原则的问题。另一个极端,例如在 JSP 中填充所有内容(html 代码、控制器逻辑和业务代码)则要糟糕得多。

请参阅此示例,了解 3 层(实际上是 3 层)Java EE MVC 应用程序有多简单:Minimal 3-tier Java EE app, without any XML config

一个相关的问题是:MVC 模式相对于老式的 3 层模式的主要优势是什么

于 2011-12-10T17:15:26.347 回答
0

如果您使用 servlet,它已经是 Java EE。

并且不要使不必要的复杂。如果您只有一个 Web 用户界面而没有其他用户界面,那么将 Web 层和业务层分开是多余的。

于 2011-12-10T16:16:36.583 回答