我最近開始學習 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
提交
取消