Java EE体系结构和模式



我正在为一个大学项目开发一个web应用程序,它已经告诉我们使用Java EE并提供文档。我很难理解如何在多层体系结构中适应MVC模式以及如何描述它们,因为我在互联网上发现了不同的文章。

从我读到的(特别是关于sun.java.com上的蓝图),我应该使用4层(客户端,web,业务和数据),业务逻辑在web和业务层之间划分,不是吗?然后我可以使用MVC模式来组织这两层:

  • Model =实体bean
  • View = jsp
  • Control = servlet和会话bean

我说的对吗?

在Java EE中有几种实现MVC的方法。

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

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

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

有时人们认为创建一个web和业务层是多余的,但这绝对不是必须的情况。这通常只是应用合理的OO原则的问题。另一个极端,比如把所有东西都塞进JSP (html代码、控制器逻辑和业务代码),那就糟糕得多了。

看看这个例子,一个三层(实际上是三层)的Java EE MVC应用可以是多么简单:最小的三层Java EE应用,没有任何XML配置

一个相关的问题是:MVC模式相对于传统的三层模式的主要优点是什么

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

不要使不必要的复杂。如果你只有一个web用户界面而没有其他用户界面,那么划分web层和业务层是多余的。

最新更新