Java EE规范与实现

问题描述 投票:2回答:2

我最近开始使用Java EE,并且很难理解它。我在这里已经阅读了一些关于SO的答案,但是我仍然觉得自己的理解有些差距。基本上,Java EE是一个规范,而TOMCAT,Glassfish等应用服务器具有具体的实现。另外,任何人都可以提供EE的实现。

所以,我从Maven存储库下载了javax.sevlet-api-4.0.1-sources.jar,我可以看到它们只是Interfaces,我认为我们只是使用它们来构建项目?

[tomcat lib文件夹中有一个servlet-api.jar。这是Servlet的tomcat实现吗?如果可以的话,是否可以将其替换为另一个Servlet版本的实现?

现在,Hibernate是Persistence API的实现。如果我想在Tomcat中使用Hibernate。我只需要在应用程序中添加与Hibernate相关的jar,就可以将它们用于构建和运行?没有实际获得合同类。

java hibernate tomcat java-ee
2个回答
2
投票

编译代码时,您需要servlet-api jar文件,因为这是例如HttpServletRequest是。您不需要在应用程序中包含该jar,因为您将war文件部署到的Servlet容器已经提供了该jar。 Tomcat。

对于Tomcat,至少对于Tomcat 9,例如,对于Tomcat 9,各种Servlet类的实现catalina.jar中。 ApplicationHttpRequest是实现HttpServletRequest的类。您不需要它来编译代码。


2
投票

准确地说,Tomcat不是完全成熟的JavaEE容器,它仅处理JavaEE规范的一部分(主要是servlet,jsp,jndi和其他一些规范)。

正如Andreas所写,您需要serlvet-api.jar来编译代码(否则HttpSerlvetRequest将丢失),但是由于tomcat已经提供了它(作为接口)以及实际的实现,因此应将其添加为“提供的“您的Maven文件中的依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.