我最近开始学习 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 添加到我的应用程序中,就可以将它们用于构建和运行?没有真正获得合同课程。
2 回答
皈依舞
TA贡献1851条经验 获得超3个赞
编译代码时需要 servlet-api jar 文件,因为那是 eg 所在的位置HttpServletRequest
。您不需要在应用程序中包含该 jar,因为您将 war 文件部署到的 Servlet 容器(例如 Tomcat)已经提供了该 jar。
对于 Tomcat,各种 servlet 类的实现catalina.jar
都在 中,至少对于 Tomcat 9 来说是这样,例如,ApplicationHttpRequest
实现的类是HttpServletRequest
。您不需要它来编译您的代码。
DIEA
TA贡献1820条经验 获得超2个赞
准确地说,Tomcat 并不是一个成熟的 Java EE 容器,它只处理部分 Java EE 规范(主要是 servlet、jsp、jndi 和其他一些)。
正如安德烈亚斯所写,您需要serlvet-api.jar
编译代码(否则HttpSerlvetRequest
会错过)。但由于 Tomcat 已经提供了它(作为接口)以及实际的实现,因此您应该将其添加为 maven 文件中的“提供”依赖项。
添加回答
举报
0/150
提交
取消