我试图理解EJB和Servlet之间的区别(我知道两者在概念上是不同的,EJB是一段带有一些规则的Java代码,Servlet是接受和处理HTTP请求的东西)但我发现其中一个两者之间的区别也是:
Ejbs允许远程访问。 Servlet / jsp不允许远程访问
我不明白上述区别。为什么EJB可以远程访问而Servlet不能。
答案 0 :(得分:0)
Servlet响应http请求(通常)注意JSP转换为servler。 EJB是一个完全不同的EJB,EJB定义了您的业务模型。 您似乎对于远程访问是什么感到困惑,这意味着您可以将EJB部署在运行在不同JVM中的不同服务器中,并且您的servlet可以访问它。 在另一方面,您可以拥有在同一服务器中运行的本地EJB,其中包含您的webapp的其余部分,并且与您的servlet和jsps位于同一JVM中。根据您的EJB是本地还是远程,实现在某些方面有所不同(在远程EJB中您需要创建接口和其他东西,我不会输入详细信息,我将添加关于此的链接)。
如果你想了解servlet,jsps和ebjs之间的区别,你应该了解MVC(模型视图控制器)是什么。通常,Controller由servlet定义,servlet从客户端接收http请求并委派它们在EJB和JSP中执行的操作。视图由JSP定义(我假设您已经了解它们是什么)。 EJB是模型,它们定义了您的业务模型,它们不提供http请求,它们只是对您的模型执行简单的操作"比如在数据库中更新/选择/插入数据等等。
详见: EJB的https://docs.oracle.com/javaee/7/tutorial/doc/ejb-intro.htm#GIJSZ
我还建议您阅读以下两本书:
Head First Servlets和JSP http://shop.oreilly.com/product/9780596005405.do
Head First EJB http://shop.oreilly.com/product/9780596005719.do