我最近開始學(xué)習(xí) Java EE,但很難理解它。我已經(jīng)在這里閱讀了一些答案,但我仍然覺得我的理解存在一些差距?;旧?,Java EE 是一個規(guī)范,TOMCAT、Glassfish 等應(yīng)用服務(wù)器都有具體的實現(xiàn)。此外,任何人都可以提供 EE 的實現(xiàn)。那么,我已經(jīng)javax.sevlet-api-4.0.1-sources.jar從 Maven 存儲庫下載了,我可以看到它們只是接口,我假設(shè)我們只是使用它們來構(gòu)建項目?在 tomcat lib 文件夾中有一個servlet-api.jar. 這是servlet的tomcat實現(xiàn)嗎?如果是,那么是否可以用另一個 servlet 版本實現(xiàn)替換它?現(xiàn)在,Hibernate是Persistence API的實現(xiàn)。如果我想將 Hibernate 與 Tomcat 一起使用。我只需要將 Hibernate 相關(guān)的 jar 添加到我的應(yīng)用程序中,就可以將它們用于構(gòu)建和運行?沒有真正獲得合同課程。
2 回答

皈依舞
TA貢獻(xiàn)1851條經(jīng)驗 獲得超3個贊
編譯代碼時需要 servlet-api jar 文件,因為那是 eg 所在的位置HttpServletRequest
。您不需要在應(yīng)用程序中包含該 jar,因為您將 war 文件部署到的 Servlet 容器(例如 Tomcat)已經(jīng)提供了該 jar。
對于 Tomcat,各種 servlet 類的實現(xiàn)catalina.jar
都在 中,至少對于 Tomcat 9 來說是這樣,例如,ApplicationHttpRequest
實現(xiàn)的類是HttpServletRequest
。您不需要它來編譯您的代碼。

DIEA
TA貢獻(xiàn)1820條經(jīng)驗 獲得超2個贊
準(zhǔn)確地說,Tomcat 并不是一個成熟的 Java EE 容器,它只處理部分 Java EE 規(guī)范(主要是 servlet、jsp、jndi 和其他一些)。
正如安德烈亞斯所寫,您需要serlvet-api.jar
編譯代碼(否則HttpSerlvetRequest
會錯過)。但由于 Tomcat 已經(jīng)提供了它(作為接口)以及實際的實現(xiàn),因此您應(yīng)該將其添加為 maven 文件中的“提供”依賴項。
添加回答
舉報
0/150
提交
取消