2008-11-20 62 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目录下是在类路径中。