Уровень знаний, необходимых для понимания статьи: вы уже более-менее разобрались с Java Core и хотели бы посмотреть на JavaEE-технологии и web-программирование. Логичнее всего, если вы сейчас изучаете квест Java Collections, где рассматриваются близкие статье темы.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 1]()
В настоящее время я использую IntelliJ IDEA Enterprise Edition (это платная расширенная версия IDE, её обычно используют в профессиональной разработке, —
прим. ред.). В ней гораздо проще работать с веб-проектами, чем в бесплатной Community Edition. Так, в Enterprise Edition буквально по одному щелчку мышки происходит сборка проекта, заливается в контейнер сервлетов, запускается сервер и даже открывается страничка с запущенным проектом в браузере. В бесплатной версии идеи многое из этого пришлось бы делать самостоятельно, так сказать, «ручками».
Для сборки проекта и управления его жизненным циклом я пользуюсь Apache Maven. В этом я использовал лишь малую толику его возможностей (управление пакетами/зависимостями).
В качестве контейнера сервлетов/сервера приложений (Application server) я выбрал Apache Tomcat версии 9.0.0.М4. Я знаю, что уже есть и более новые версии, но у меня установлена именно эта.
Приступаем
Для начала откроем IntelliJ IDEA и создадим пустой Maven-проект.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 2]()
Тут слева выбираем Maven, проверяем, чтобы сверху была указана JDK для проекта. Если её нет, выберите необходимую из списка, либо жмите New… и выбирайте напрямую с компьютера.
В середине окна у меня крутится анимация загрузки списка архетипов. Нам они не нужны, поэтому, не дожидаясь загрузки, смело клацаете Next внизу окна.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 3]()
В этом окне необходимо указать
GroupId и ArtifactId.
Под GroupId подразумевается уникальный идентификатор компании, которая выпускает проект. Обычно принято использовать доменное имя компании, только в обратном порядке. Не в смысле, зеркально, а если, например, доменное имя компании
maven.apache.org, то ее GroupId будет
org.apache.maven. То есть сначала пишем домен первого уровня, отделяем точкой, пишем имя домена второго уровня, и так далее. Это общепринятый подход.
В том случае, если вы «пилите» проект самостоятельно, а не в составе компании, пишите сюда ваше личное доменное имя (тоже в обратном порядке!). Если оно у вас, конечно же, есть:). Если нет — не расстраивайтесь. В действительности сюда можно написать
что угодно.
|
Для компании с доменным именем vasya.pupkin.org, GroupId будет org.pupkin.vasya. Такой подход к именам нужен для того, чтобы отделять проекты с одинаковым названием, но которые выпустили разные компании.
|
В этом примере я буду использовать вымышленное доменное имя
fatfaggy.info.javarush.ru. Соответственно, в поле
GroupId я вписываю
ru.javarush.info.fatfaggy.
ArtefactId — это просто название нашего проекта. Можно использовать буквы и некоторые знаки (дефис, например) для разделения слов. Наш «артефакт» будет называться именно так, как мы тут напишем. В этом примере, я пишу
my-super-project.
Поле версии пока не трогаем, оставляем как есть.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 4]()
Ну и стандартное окошко IDEA при создании нового проекта. Назовем его по традиции
my-super-project.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 5]()
Проект создан!
|
Перед нами сразу открылся файл pom.xml. Это файл, с настройками Maven. Если мы хотим «рассказать» Maven’у, что и как делать или откуда что-то брать, мы описываем всё это в этом самом файле pom.xml. Он находится в корне проекта.
|
Видим, что в нём указаны сейчас именно те данные, которые мы вводили при создании Maven-прокта:
groupId,
artifactId и
version (последний мы не трогали).
Структура нашего проекта
Этот Maven-проект имеет определенную структуру.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 6]()
Как видим, в корне лежат:
- директория .idea, в которой находятся настройки идеи для текущего проекта;
- директория src, в которой мы создаем наши исходники;
- файл my-super-project.iml, файл проекта, созданный IDEA;
- файл pom.xml, тот самый файл Maven-проекта, о котором я говорил чуть выше, который у нас сейчас открыт. Если я буду где-то упоминать pom.xml или «помник», я буду иметь в виду именно этот файл.
В папке
src в свою очередь лежат две подпапки:
- main — для нашего кода;
- test — для тестов для нашего кода.
И в
main, и в
test есть папка
java. Считайте, что это одна и та же папка, только та, что в
main —для кода исходников, а та, что в
test — для кода тестов соответственно.
Папка
resources нам пока вообще не нужна, мы не будем ее использовать. Но пусть полежит.
Превращение в веб-проект
Пришло время наш преобразовать наш Maven-проект в веб-проект. Для этого кликаем правой кнопкой мышки по названию проекта в этом дереве и выбираем пункт
Add framework support…
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 7]()
Откроется окно, где мы можем добавить поддержку всяких разных фреймворков для нашего проекта. Но нам нужен только один:
Web Application. Его и выбираем.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 8]()
Проверяем, что стоит галочка напротив
Web Application, а в основной части окна отмечено, что мы хотим, чтобы для нас создали сразу ещё и файл
web.xml (рекомендую поставить галочку, если её там нет).
После этого мы увидим, что структура нашего проекта пополнилась папочкой
web.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 9]()
Это корень нашего веб-проекта с адресом
/. То есть, если мы введем в браузере адрес localhost (когда запустим, конечно же), то это будет обращение именно сюда, в корень веб-проекта. Если введем
localhost/addUser, то в папочке
web будет искаться ресурс с названием
addUser.
|
Главное, надо понять, что папка web — корень нашего проекта, когда мы его зальем на Tomcat. Сейчас у нас есть определённая структура папок, но в готовом проекте, который мы будем заливать, она будет немного другой, и именно папочка web там будет корнем.
|
В
web лежит обязательная папка с названием
WEB-INF, где находится файл
web.xml, который мы просили создать на прошлом шаге. Откроем его.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 10]()
Как видим, в нем пока нет ничего интересного, одна только «шапка». Кстати, если бы мы не просили его создавать, нам бы, возможно, пришлось создавать его вручную, то есть набирать «ручками» всю эту «шапку», или, в крайнем случае искать готовый вариант в интернетах.
Для чего нужен
web.xml? Для маппинга. Здесь мы распишем для Tomcat, какие url-запросы передавать на какие сервлеты. Но это все позже, пока оставляем его пустым.
Ещё в папочке
web есть файл
index.jsp. Откроем его.
![Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками - 11]()
Это файл, который будет выполнен по умолчанию, так сказать. То есть когда мы запустим проект, то именно его и узреем. По сути,
jsp — обычный html-файл, с той разницей, что в нём можно выполнять java-код.