Java EE 规范与实现

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

那么,我已经javax.sevlet-api-4.0.1-sources.jar从 Maven 存储库下载了,我可以看到它们只是接口,我假设我们只是使用它们来构建项目?

在 tomcat lib 文件夹中有一个servlet-api.jar. 这是servlet的tomcat实现吗?如果是,那么是否可以用另一个 servlet 版本实现替换它?

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


德玛西亚99
浏览 108回答 2
2回答

皈依舞

编译代码时需要 servlet-api jar 文件,因为那是 eg 所在的位置HttpServletRequest。您不需要在应用程序中包含该 jar,因为您将 war 文件部署到的 Servlet 容器(例如 Tomcat)已经提供了该 jar。对于 Tomcat,各种 servlet 类的实现catalina.jar都在 中,至少对于 Tomcat 9 来说是这样,例如,ApplicationHttpRequest实现的类是HttpServletRequest。您不需要它来编译您的代码。

DIEA

准确地说,Tomcat 并不是一个成熟的 Java EE 容器,它只处理部分 Java EE 规范(主要是 servlet、jsp、jndi 和其他一些)。正如安德烈亚斯所写,您需要serlvet-api.jar编译代码(否则HttpSerlvetRequest会错过)。但由于 Tomcat 已经提供了它(作为接口)以及实际的实现,因此您应该将其添加为 maven 文件中的“提供”依赖项。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java