Существует два типа веб-проектов: динамические и статические. Динамические веб-проекты могут содержать динамические ресурсы Java EE, такие как сервлеты, файлы JSP, фильтры и связанные метаданные, в дополнение к статическим ресурсам, таким как изображения и файлы HTML. Статические веб-проекты могут содержать только статические ресурсы. При создании веб-проектов можно добавить файлы CSS и библиотеки тегов JSP (для динамических веб-проектов) для разработки более богатого набора ресурсов проекта.

Динамические веб-проекты всегда являются частью проектов приложений J2EE. Мастер, используемый для создания динамического веб-проекта, также позволяет создать проект приложения J2EE (EAR) если он еще не существует. Мастер также позволяет обновить файл описания application.xml указанного проекта приложения J2EE чтобы задать веб- проект в виде элемента модуля. При импорте файла WAR вместо создания нового динамического веб-проекта, мастер Импорт WAR требует указать веб-проект, которому уже требуется проект EAR.

Соглашения Java EE могут быть лишней нагрузкой на сервер, когда требуется создать только статическое веб-приложение, не содержащее динамических файлов, таких как файлы JSP и сервлеты. В этом случае, когда необходим только самый простой веб-проект, можно выбрать статический тип веб-проекта (см. раздел Статические веб-проекты). Обратите внимание, что статические веб-проекты можно преобразовать в динамические, выбрав пункт Преобразовать в динамический веб-проект в меню Проект.

Модель Java EE, а именно спецификация Sun Microsystems Java™ Servlet 2.3 Specification, определяет структуру каталогов веб-приложения, куда помещаются файлы веб-страниц, классов, пути к классам, файлы описания и вспомогательные метаданные. Иерархия веб-проектов отражает иерархию веб-приложения, созданную из проекта. В рабочей среде можно использовать мастер Создать веб-проект для создания нового веб-проекта.

В основной папке проекта содержатся объекты разработки, связанные с веб-приложением. Папка веб-содержимого содержит элементы проекта, необходимые для создания веб-приложения. Эта структура папки привязана к структуре архива веб-приложения (WAR), заданной Sun Microsystems. Следующие элементы по умолчанию расположены в иерархии папки веб-проекта:
Примечание: На панели Структура проектов элементы веб-проектов группируются по папкам для более удобного управления веб-ресурсами в процессе разработки. Дополнительная информация о фильтрации структуры приведена в разделе Панель Структура проектов.
Файл описания веб-развертывания
Стандартный файл описания веб-приложения (файл web.xml).
JavaSource
Содержит исходный код классов Java, объектов EJB и сервлетов проекта. При добавления этих ресурсов в веб-проект они автоматически компилируются, а создаваемые файлы добавляются в каталог WEB-INF/classes. Содержимое исходного каталога не упаковывается в файлы WAR если только э та опция не указана при создании файла WAR.
Примечание: Хотя по умолчанию папка имеет имя JavaSources, его можно изменить. Для этого нужно открыть контекстное меню имени на панели Структура проектов и выбрать команду Рефакторинг > Переименовать.
Папка imported_classes
Создать эту папку можно при импорте WAR, она содержит файлы классов, не имеющие соответствующего источника. Папка imported_classes - это папка классов Java. Папки классов Java можно создать на странице параметров Путь компоновки Java веб-проекта.
Папка WebContent
Обязательное расположение всех веб-ресурсов, включая HTML, JSP, графические файлы и т.п. Если файлы расположены не в этом каталоге (или одном из его подкаталогов), то они не доступны приложению во время его выполнения на сервере. Папка веб-содержимого представляет содержимое файла WAR, развертываемого на сервере. Файлы, отсутствующие в папке веб-содержимого, считаются ресурсами разработки (например, файлы .java, .sql и .mif), и не развертываются при тестировании или публикации проекта.
Примечание: Хотя по умолчанию папка имеет имя WebContent, его можно изменить. Для этого нужно открыть контекстное меню папки на панели Структура проектов и выбрать команду РефакторингПереименовать или поменять имя на странице Свойства проекта. В динамическом веб-проекте при изменении имени папки изменяется каталог вывода компоновки Java.
META-INF
В этом каталоге содержится файл MANIFEST.MF, использующийся для привязки путей к классам для зависимых файлов JAR, существующих в других проектах того же проекта приложения J2EE. Записи в этом файле добавляют указанные файлы JAR в путь к классам для выполнения проекта и в параметры компоновки Java.
тема
Рекомендуемый каталог для файлов CSS прочих связанных со стилем объектов.
WEB-INF
По спецификации сервлетов Java версии 2.3 от Sun Microsystems этот каталог содержит вспомогательные веб-ресурсы для веб-приложения, включая файл web.xml и каталоги classes и lib.
/classes
Этот каталог предназначен для сервлетов, служебных классов и каталога вывода компилятора Java. Классы в этом каталоге используются загрузчиком классов приложений для загрузки классов. Папки в этом каталоге преобразуют имена пакетов и классов, как в /WEB-INF/classes/com/mycorp/servlets/MyServlet.class.
Не помещайте файлы .class в этот каталог. Файлы .class помещаются в этот каталог автоматически при компиляции исходных файлов Java из каталога Ресурсы Java. Компилятор Java удаляет все посторонние файлы в этом каталоге.

/lib
Здесь хранятся вспомогательные файлы JAR, на которые ссылается веб-приложение. Все классы в файлах .jar, помещенные в этот каталог, будут доступны для ваших веб-приложений.
Библиотеки
Здесь хранятся вспомогательные файлы JAR, на которые ссылается веб-приложение. Эта папка копирует содержимое папки lib. Кроме того, эта папка содержит проекты веб-библиотеки - "виртуальные" файлы JAR, которые физически отсутствуют в веб-проекте, но связаны с проектами Java в рабочей области. Они упаковываются в проекте при экспорте файла WAR приложения.
Примечание: Запись библиотеки остается в пути компоновки Java до удаления файла JAR из папки WEB-INF/lib. При удалении одной только записи пути к библиотеки, без файла JAR, запись библиотеки будет повторно добавлена в путь автоматически.