【发布时间】:2016-07-12 04:46:53
【问题描述】:
我最近一直在学习 Tomcat 和 servlet。现在我意识到Oracle API 和Tomcat API 至少有些不同。我知道 Oracle API 应该更广泛,但即使在 Tomcat 操作的限制下,它们似乎也有完全不同的包等。
这可能看起来很愚蠢,但我找不到任何答案。有人可以解释一下差异吗?实际上,如果我构建一个在 Tomcat 下运行的服务,它是否也可以在 Glassfish 中运行,而不需要对导入进行任何重构?
--- 编辑 ---
所以,显然我把 Tomcat API 误认为是 Servlet API 等等。
解决方案不是查看上图中的 Tomcat Javadoc,而是查看 Servlet Javadoc 或任何有问题的内容。图片中的列表位于Apache Tomcat 8 Documentation Index,位于左侧,略向下。
谢谢,Andreas 和 EJP。
【问题讨论】:
-
你指的是什么API? Servlet API 是一个共享标准,由许多 webapp 服务器实现,包括。 Tomcat、Glassfish、WebLogic……如果你想要完整的 Java EE API,请使用 TomEE,而不是 Tomcat,因为 Tomcat 只是一个 Servlet 容器,而不是一个完整的 EE 容器。除非绝对必要,否则不要使用您链接的 Tomcat API。
-
谢谢。我知道,这是我的问题。我不需要完整的EE。问题是包和类在两个 API 或至少在包结构中看起来不同。例如,我可以在 Oracle 中轻松找到 servlet 包,但在 Tomcat 中找不到。
-
您不必为 Tomcat API 烦恼。你永远不会使用它。您需要在 JEE API 和构成其中一小部分的 Servlet API 之间做出决定。
-
@Andreas Small 更正:TomEE不是完整的 Java EE 实现,而是Java EE Web Profile 的实现加上更多的好处。所以,比 Tomcat 更多的东西,但比完整的 Java EE 少得多。此外,TomEE 实现了 Java EE 6 Web Profile,而不是 7(仅供参考)。
标签: java oracle api tomcat servlets