在什么情况下使用EJB? 它们是否需要在网站/网络应用程序开发中?

EJBS是否用于数据库支持的网站(所有人都可以访问)?

当然, 不需要任何东西。 如果你想要你可以构建一个Web应用程序作为CGI背后的单个大型C函数。

也就是说,EJB确实使Web应用程序开发变得更加容易。 它们包含在Java EE 6的超轻量级Web Profile中并非毫无意义。

EJB本身不包含任何数据库API,但它与JPA集成得非常好。 您可以在其中注入EntityManager ,并且必须自己启动和提交/回滚事务的要求消失。 这大大简化了您的代码。

虽然您可以将DB相关代码(JPA或JDBC)直接放入Servlet甚至JSP页面,但这种做法通常不赞成。 Servlet和JSP用于显示,任何业务或持久性逻辑都不属于那里。 一个非常实际的原因是你不能调用JSP页面的中间来重用一些业务逻辑。

因此,保持业务逻辑分离是优秀Web应用程序的主要优点,而EJB是Java EE中指定的bean。

有关其他信息,请参阅以下两个类似问题的答案:

  • 通过JPA Vs访问数据库表。 Web应用程序中的EJB
  • EJB 3或Hibernate 3

有关EJB在Web应用程序体系结构中的作用:

  • 用于分层可重用架构的框架

EJB是框架结构( 有关高级解释,请参见此处 )。

您可以在很多情况下使用它们,将业务逻辑等问题与数据存储等其他问题分开。 EJB的一个备受瞩目的竞争对手(相比之下)是Spring框架。

在回答您的问题时,不,它们不是网站和Web应用程序开发所必需的,尽管它们是一种方法。 Java中的其他Web开发方法是Servlets , JSP 。

到目前为止,Servlet是最简单的代码。 它的function有限,但对于简单的网络应用程序来说,它是充足的。