【发布时间】:2014-11-21 21:31:00
【问题描述】:
我试图理解 EJB 和 Servlet 之间的区别(我知道两者在概念上是不同的,EJB 是一段带有一些规则的 Java 代码,而 Servlet 是接受和处理 HTTP 请求的东西)但我发现其中一个两者的区别还在于:
Ejbs 允许远程访问。 Servlet/jsp 不允许远程访问
我不明白上面的区别。为什么可以远程访问 EJB 而 Servlet 不能。
【问题讨论】:
我试图理解 EJB 和 Servlet 之间的区别(我知道两者在概念上是不同的,EJB 是一段带有一些规则的 Java 代码,而 Servlet 是接受和处理 HTTP 请求的东西)但我发现其中一个两者的区别还在于:
Ejbs 允许远程访问。 Servlet/jsp 不允许远程访问
我不明白上面的区别。为什么可以远程访问 EJB 而 Servlet 不能。
【问题讨论】:
Servlet 响应 http 请求(通常)注意 JSP 被转换为 servler。 EJB 完全不同,EJB 定义了您的业务模型。 您似乎对什么是远程访问感到困惑,这意味着您可以将 EJB 部署在运行在不同 JVM 中的不同服务器中,并且您的 servlet 可以访问它。 另一方面,您可以拥有在同一台服务器上运行的本地 EJB,与您的 webapp 的其余部分以及与您的 servlet 和 jsps 相同的 JVM 中运行。根据你的 EJB 是本地的还是远程的,实现在一些小方面有所不同(在远程 EJB 中你需要创建一个接口和其他东西,我不会详细介绍,我会添加一个有关此的链接)。
如果您想了解 servlet、jsps 和 ebjs 之间的区别,您应该了解 MVC(模型视图控制器)是什么。通常,控制器由 servlet 定义,它们接收来自客户端的 http 请求并委托它们在 EJB 和 JSP 中执行的操作。视图由 JSP 定义(我假设您已经了解它们是什么)。 EJB 是模型,它们定义您的业务模型,它们不提供 http 请求,它们只是对您的“模型”执行简单的操作,例如更新/选择/插入数据库中的数据,以及许多其他事情。
查看更多内容: https://docs.oracle.com/javaee/7/tutorial/doc/ejb-intro.htm#GIJSZ 用于 EJB
另外我推荐你以下两本书:
Head First Servlet 和 JSP http://shop.oreilly.com/product/9780596005405.do
Head First EJB http://shop.oreilly.com/product/9780596005719.do
【讨论】: