2016-07-12 104 views
-2

我最近一直在學習Tomcat和servlets。現在我意識到Oracle APITomcat API至少有些不同。我知道Oracle API應該更寬,但是即使在Tomcat運行的限制之下,它們似乎也有完全不同的包等。Tomcat API vs其他API

這看起來可能很愚蠢,但我找不到任何答案。有人能解釋一下這些差異嗎?實際上,如果我構建一個在Tomcat下運行的服務,它是否也可以運行在Glassfish中,而不需要重新導入?

---編輯---

所以,顯然我錯把Servlet API的Tomcat的API等

enter image description here

的解決方案是不看的Tomcat的Javadoc在出手上面,但在Servlet Javadoc,或任何有問題。圖片中的列表可以在Apache Tomcat 8 Documentation Index的左側稍微向下找到。

謝謝Andreas和EJP。

+0

你指的是什麼API? Servlet API是一個共享標準,由許多webapp服務器實現,包括。 Tomcat,Glassfish,WebLogic,...如果你想要完整的Java EE API,使用TomEE而不是Tomcat,因爲Tomcat只是一個Servlet容器,而不是一個完整的EE容器。除非絕對必要,否則不要使用您鏈接的Tomcat API。 – Andreas

+0

謝謝。我知道這一點,這是在我的問題。我不需要完整的EE。問題是這兩個API或至少包結構中的包和類看起來不同。例如,我可以在Oracle中輕鬆找到servlet包,但不能在Tomcat中找到。 – Tomasz

+1

當然你可以:[Servlet 3.1 API - Apache Tomcat 8.0.36](http://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html)和[JSP 2.3 API - Apache Tomcat 8.0。 36](http://tomcat.apache.org/tomcat-8.0-doc/jspapi/index.html)等。請參見[Apache Tomcat 8文檔索引](http:// tomcat。 apache.org/tomcat-8.0-doc/index.html)。 – Andreas

回答

2

Java企業版

你叫什麼「甲骨文API」其實是Java Enterprise Edition (Jave EE)規範。我建議你避免使用你的用詞不當。

Java EE是由JAVA標準版(Java SE)頂層構建的數十種各種技術的大量集合。 Java EE的各種實現支持不同的部分,不一定全部都是。

這幾個API只是Java EE的一個小而重要的子集。你連接的Tomcat API是特定於Tomcat的實現。開發人員很少會經歷該API。相反,我們堅持所有以JSR發佈的Servlet,JSP,EL和WebSocket規範中發佈的接口。堅持規範意味着您的Web應用程序可以部署在其他實現上,作爲Tomcat的替代方案,如果需要的話。

diagram showing nested subsets of Java EE, Web Profile, Web containers, and distinct from that is the Tomcat-specific API

Web Profile的

Java EE Web Profile是包含Servlet和JSP API的along with several more,但仍然all the possible Java EE technologies一個子集的規範。 Apache TomEE是Web Profile的一個實現,它以Tomcat開始並添加更多庫。另一個例子是Glassfish,它可以在either a complete Java EE edition or a stripped-down Web Profile edition中找到。請參閱問題What is different about the Java EE packages? (SDK/normal vs Web Profile)

「完全」實現

Some products實現所有(或接近)了Java EE規範。

有時將其描述爲「完整」實現。我認爲這個標籤具有誤導性,因爲它暗示子集實現缺失或缺少某些需要的東西。恰恰相反。你應該總是使用最簡單的實現,只包含你需要的部分。更重的服務器佔用更多內存,啓動和停止更慢,並且可能花費更多資金。例如,我在Mac OS X上的Java 8 Standard Edition(SE)之上,僅使用Apache Tomcat 8和Vaadin 7構建和部署高度交互式的桌面式Web應用程序。

還請記住,許多Java EE技術可以獨立運行,與完整的Java EE實現分開。因此,您可以從更精簡的實施開始,然後爲您需要的少數單個技術添加庫。例如,通過添加an implementation的JAR文件,可以在Tomcat上使用Bean Validation