Servlet容器和类路径

时间:2008-11-20 13:25:03

标签: java servlets java-ee

Servlet容器集的类路径是什么?

根据我的理解,涉及三个组成部分。 JAR文件位于Servlet容器的lib目录中,然后是WEB-INF/classes目录中WEB-INF/lib和JAR文件中的类。 Servlet容器的lib目录中的类被添加到系统类路径中,动态类路径包括lib目录中的JAR文件和classes目录中的类。

动态类路径集是什么?动态类路径是指向WEB-INF下的所有目录,还是包含WEB-INF/libWEB-INF/classes中的所有单个类和JAR文件,或者只指向两个目录WEB-INF/classes和{ {1}}?假设我在WEB-INF/lib中有一个名为foo的目录,其中包含WEB-INF。现在bar.properties也在类路径中吗?

2 个答案:

答案 0 :(得分:7)

“动态”类路径将列出WEB-INF/classesWEB-INF/lib下的每个JAR文件作为单独的条目。 WEB-INF下的其他文件夹不包含

在您的示例中,bar.properties将不在类路径中。将其移至WEB-INF/classes,或将其放在WEB-INF/lib下的JAR文件中。

类路径的其余部分取决于您的Servlet容器。它是特定于实现的,但大多数容器还有两个放置类的地方。一个是容器可见的目录,但不是应用程序,另一个是容器和所有应用程序可见。由于第二个ClassLoader对所有应用程序都可见,因此可以使用这些类的static成员在应用程序之间共享信息。

答案 1 :(得分:2)

在你的例子中,bar.properties需要在classes目录下位于类路径中。