Первое веб-приложение


Для создания веб-приложения кликнем правой кнопкой мыши внутри вкладки Package Explorer -> New -> Dynamic Web Project. То же самое можно выполнить через контекстное меню File.


В появившемся окне введем название проекта Test. И изменим версию Dynamic Web Module Version на более раннюю 2.5.
! Обратите внимание на регистр при написании имени проекта, в дальнейшем для доступа к проекту из браузера мы будем его использовать.



Нажимаем Finish

В результате Eclipse сгенерирует структуру веб-проекта:
  

Пробежимся последовательно по дереву каталогов.
Test – корневой каталог, название проекта
src – папка для исходников, тут будем писать java – код
JRE System Library – системные библиотеки для запуска java-приложения. На самом деле они не присутствуют физически в проекте, просто на них есть ссылки.
Apache tomcat v7.0 – ссылки на библиотеки сервера.
build – папка для создания конечного выходного файла проекта, готового для размещения на сервере.
WebContent – папка которая содержит в себе веб-контент, то есть файлы html, javascript, css, jsp и прочее – все то, что связано с отображением на сайте.
META-INF->MANIFEST.MF – загадочный файл, который может содержать в себе сведения о приложении. Можно не обращать внимания на данном этапе.
WEB-INF –> lib – сюда мы может поместить сторонние библиотеки для того чтобы можно было их использовать на сервере.
WEB-INF -> web.xml – дескриптор развертывания, файл конфигурации веб-приложения. В нем описывается важная информация и это - фактически точка входа в приложение на уровне конфигурации.

Заглянем в web.xml:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>Test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Кликните  на закладку Source, чтобы увидеть исходный код.

Внутри корневого тега wep-app указывается название схемы документа, в соответствии с которой происходит проверка данного xml документа на правильность.
 
Display-name – опциональный элемент, может использоваться в приложении для отображения заданного имени проекта. Предпочитаю его удалить за ненужностью.

Welcome-file-list – список файлов-приглашений. Сервер последовательно проверяет существует ли данный файл и если да, то выводит его в качестве домашней страницы.

Сейчас мы это проверим.
Давайте создадим в папке WebContent файл default.html.
Действуем таким же способом как при создании проекта.
Кликнем правой кнопкой по папке WebContent -> New -> Other -> Web -> HTML File



Введем название файла default.html и нажимаем Finish.
В папке WebContent появился файл default.html
И он же открылся в панели редактирования.

Это - шаблон HTML документа, который мы можем редактировать по своему усмотрению.
Добавим строку “
Hello web world!” между тегами <body> и </body> и сохраним файл комбинацией CTRL+S.


Теперь добавим проект Test на сервер.

Для этого кликнем правой кнопкой мыши по названию сервера Tomcat во вкладке Servers и выберем пункт Add and Remove:
  

В появившемся окне выберем в левой части наш проект и нажмем Add. Затем Finish




Таким образом мы разместили проект на сервере.




Для того чтобы запустить проект правой кнопкой мыши кликаем по серверу Tomcat на вкладке Servers и выбираем Start (CTRL+ALT+R).
Мы видим что сервер поменял свой статус на значение Started и рядом появилась вкладка Console, в которой отображается информация о действиях, происходящих на сервере.



Если что-то пошло не так при старте приложения, тут мы можем увидеть причины возникших проблем. В нашем случае проблем быть не должно о чем свидетельствует последняя строка INFO: Server startup in 1126 ms.

Теперь остается проверить как работает приложение.
Заходим в браузер и вводим в строке поиска http://localhost:8080/Test



http:// - это протокол передачи информации HTTP (Hyper Text Transfer Protocol).
Протокол может быть FTP (File transfer protocol) – передачи файлов, HTTPS(Hyper Text Transfer Protocol Secured) – защищенный HTTP, POP(Post Office Protocol) – почтовый, есть еще несколько типов протоколов однако сейчас нас интересует только HTTP.

Localhost – это внутренний адрес вашего компьютера, под этим именем он распознается всеми браузерами. Физический адрес вашего компьютера 127.0.0.1 поэтому к проекту можно обратиться и таким образом  http://127.0.0.1:8080/Test

8080 – это стандартный порт Tomcat, который открыт для обращения извне. Можно его изменить если в этом есть необходимость. Мы будем использовать значение по умолчанию.

Test – имя нашего проекта. Помните про важность соблюдения регистра, если имя проекта начинается с большой буквы, то и в браузере пишем также.

Общая схема работы нашего веб проекта такая
:


Браузер посылает запрос c указанием имени проекта по адресу localhost, который является внутренним адресом нашего компьютера, и на порт 8080 который “прослушивается” сервером.
Сервер, получив запрос, находит проект с названием Test, просматривает его web.xml и последовательным перебором файлов-приветствий определяет, что в проекте существует файл default.html, содержимое которого и передается назад в браузер. Результат мы видим на экране.


 


2 комментария:

  1. Эх дружище, и почему прекратил писать? Отличный материал, вправил мне мозги за неделю скитаний по тысячам страницам перегруженного хлама!

    ОтветитьУдалить
  2. Очень печально, что Вы перестали освещать путь новичкам в Java.
    С благодарностью за прекрасно сформулированный и лаконично визуализированный материал по теме!! С надеждой, что у Вас все хорошо, буду ждать новинок в Вашем исполнении.
    PS А может Вы где-то пишите и сейчас, просто я не нашла? Не затруднит, дайте знать.
    С уваженим

    ОтветитьУдалить