【问题标题】:Java EE architecture and pattern [closed]Java EE 架构和模式
【发布时间】:2011-12-10 15:58:18
【问题描述】:

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

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

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

我说的对吗?

【问题讨论】:

    标签: model-view-controller jakarta-ee architecture design-patterns multi-tier


    【解决方案1】:

    在 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

    一个相关的问题是这个:What are the main advantages of MVC pattern over the old fashioned 3-layer pattern

    【讨论】:

    • 谢谢,这很有趣。我想我不会使用它,因为我的教授想要带有会话和 servlet 的经典 MVC,但无论如何我学到了一些有趣的东西,特别是从您在链接主题中的回答中。
    【解决方案2】:

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

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

    【讨论】:

    • 是的,我读到我可以只使用 servlet 而没有会话 bean,但是我们的老师希望我们使用它们并做这样的架构。无论如何,我不确定我是否正确理解了多层和 MVC。
    猜你喜欢
    • 2013-08-02
    • 2012-03-13
    • 2011-05-06
    • 2013-09-27
    • 1970-01-01
    • 2011-03-26
    • 2011-05-10
    • 2011-02-15
    • 2013-01-05
    相关资源
    最近更新 更多