2008-11-20 2 views
10

К какому пути пути к набору контейнеров Servlet?Контейнеры сервлета и путь к классам

В соответствии с моим пониманием задействованы три компонента. JAR-файлы в каталоге lib контейнера Servlet, а затем классы в файлах WEB-INF/classes и JAR в каталоге WEB-INF/lib. Классы в контейнере Servlet lib добавляются в системный путь к классам, а динамический путь к классам включает файлы JAR в каталоге lib и классы в каталоге classes.

К какому динамическому набору классов? Указывает ли динамический путь к всем каталогам под WEB-INF или включает все отдельные классы и файлы JAR в WEB-INF/lib и WEB-INF/classes или просто указывает на два каталога WEB-INF/classes и WEB-INF/lib? Скажем, у меня есть каталог foo в WEB-INF, содержащий bar.properties. Теперь есть bar.properties также в пути класса?

ответ

7

«Динамический» путь к классам будет содержать WEB-INF/classes, каждый JAR-файл под номером WEB-INF/lib в качестве отдельной записи. Другие папки под WEB-INF: не прилагается.

В вашем примере bar.properties не будет находиться на пути к классам. Переместите его на WEB-INF/classes или поместите его в файл JAR под номером WEB-INF/lib.

Что находится в остальной части пути к классам, зависит от вашего контейнера Servlet. Он специфичен для реализации, но большинство контейнеров имеют два других места для размещения классов. Один из них - это каталог, который отображается контейнеру, но не приложения, а другой - контейнеру и всем приложениям. Поскольку второй ClassLoader видна всем приложениям, static члены этих классов могут использоваться для обмена информацией между приложениями.

+1

Если включены другие папки под WEB-INF lib, то не должен ли файл свойств быть включен в путь класса? – Abhi 2008-11-20 16:29:14

2

В вашем примере bar.properties должны находиться под каталогом классов, находящимися в пути к классам.

Смежные вопросы