2

我正在开发一个大学项目的Web应用程序,并且已经告诉我们要使用Java EE并提供文档。我无法理解如何在多层体系结构中适合MVC模式,以及如何描述它们,因为我在互联网上发现了不同的文章。我应该使用4层(客户端,Web,业务和数据),业务逻辑分为网络层和业务层,不是吗? ?那么我可以用MVC模式来组织这两层:Java EE体系结构和模式

  • 型号=实体bean
  • 查看= JSP的
  • 控制= servlet和会话bean

我说得对不对?

+0

您可以向程序员网站。 –

回答

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

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

+0

谢谢,这非常有趣。我想我不会使用它,因为我的教授需要使用会话和servlet的经典MVC,但无论如何,我都会学到一些有趣的东西,特别是您在链接主题中的回答。 – Simon

0

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

并且不要使不必要的复杂。如果您只有一个Web用户界面并且没有其他用户界面,那么划分为Web和业务层都会被过分杀死。

+0

是的,我读过我可以使用servlet而不使用会话bean,但是我们的老师希望我们能够使用它们并构建这样的架构。无论如何,我不确定我是否理解了多层和MVC。 – Simon