2008-11-20 63 views
10

什麼是Servlet容器集的類路徑?Servlet容器和類路徑

根據我的理解,涉及三個組件。 JAR文件位於Servlet容器的lib目錄中,然後是目錄中WEB-INF/classes和JAR文件中的類。將Servlet容器的lib目錄中的類添加到系統類路徑中,並且動態類路徑包括lib目錄中的JAR文件和classes目錄中的類。

什麼是動態類路徑集?是否動態類路徑指向所有目錄WEB-INF下或包括WEB-INF/libWEB-INF/classes所有個人類和JAR文件或只是點到兩個目錄WEB-INF/classesWEB-INF/lib?假設我在WEB-INF中有一個名爲foo的目錄,其中包含bar.properties。現在是bar.properties也在類路徑中?

回答

7

「動態」類路徑將列出WEB-INF/classes,每個JAR文件在WEB-INF/lib之下作爲單獨的條目。 WEB-INF下的其他文件夾包括而不包括

在你的榜樣,bar.properties不會在類路徑。將其移動到WEB-INF/classes,或將其放入WEB-INF/lib下的JAR文件中。

類路徑的其餘部分取決於您的Servlet容器。它是特定於實現的,但大多數容器有兩個放置類的地方。一個是容器可見的目錄,但不是應用程序,另一個對容器和所有應用程序都是可見的。由於所有應用程序都可以看到第二個ClassLoader,因此可以使用這些類的成員來共享應用程序之間的信息。

+1

如果包含WEB-INF庫下的其他文件夾,那麼屬性文件是否應該包含在類路徑中? – Abhi 2008-11-20 16:29:14

2

在您的例子bar.properties將需要classes目錄下是在類路徑中。