За редким исключением, сервлеты и JSP обычно создаются как часть web-приложения. Иногда, под рукой может не оказаться IDE, которая соберет за вас проект и сделает все необходимое, чтобы его можно было запустить. Поэтому в этом посте я опишу процесс ручной сборки web-архива.

Создать структуру каталогов для размещения компонентов web-приложения относительно легко. Структура web-приложения, включающая подкаталог WEB-INF, является стандартной для всех web-приложений на Java и задана в спецификации API сервлетов (в разделе web-приложения). Эта структура выглядит следующим образом, если каталог верхнего уровня имеет имя test-servlet.

/test-servlet
   /images
   /WEB-INF
      /classes
      /lib

Спецификация сервлета определяет подкаталог WEB-INF и два его дочерних каталога classes и lib. Подкаталог WEB-INF содержит дескриптор развертывания приложения web.xml. Файлы JSP и HTML находятся в каталоге верхнего уровня (в данном случае в каталоге test-servlet). Классы сервлетов и JavaBean и прочие вспомогательные классы размещаются в каталоге WEB-INF/classes, в структуре каталогов, соответствующей именам их пакетов. Если полностью квалифицированное имя класса сервлета ru.topcode.testserv.FirstServlet, то этот класс сервлета должен находиться в WEB-INF/classes/ru/topcode/testserv/FirstServlet.class. Каталог WEB-INF/lib содержит все необходимые приложению библиотеки JAR, такие, как драйверы баз данных, логгеры, а также те, что требуются для использования библиотеки стандартных тегов JSP (JavaServer Pages Standard Tag Library).

Когда все готово для сборки проекта в web-архив, перейдите в каталог верхнего уровня (у меня C:\Documents and Settings\dmitrii.leontiev\My Documents\NetBeansProjects\test-servlet). Если вы уже запускали проект из NetBeans, то увидите в этой директории поддиректорию build. Зайдите в нее, а затем в директорию web. Это NetBeans подготовил за вас структуру каталогов. С ней мы и будем экспериментировать.

Итак, сейчас мы находимся в C:\Documents and Settings\dmitrii.leontiev\My Documents\NetBeansProjects\test-servlet. В командной строке наберите команду

jar cvf test-servlet.war .

Обратите внимание на . (точка) в конце командной строки, она указывает инструменту jar включить в WAR-файл содержимое текущего каталога и его подкаталогов. Данная команда создает файл test-servlet.war в текущем каталоге.

Заданное имя WAR-файла становится именем приложения и подразумеваемым путем к этому web-приложению.  К примеру, когда приложение test-servlet.war развертывается в web-контейнере, с ним обычно ассоциируется путь /test-servlet.war.

Сейчас вы можете посмотреть содержимое созданного WAR-файла. Это можно сделать из командной строки командой

jar tvf test-servlet.war

или любым современным архиватором.

Поздравляю! Вы собрали ваш первый web-проект. Можете отправлять его заказчику, а он в свою очередь пусть закинет его в autodeploy. Непонятно? Тогда читайте следующие посты.