Tomcat and java connection

Простейшее web-приложение на Java на сервере Tomcat

В статье рассказывается о том, как поднять на своем компьютере локальный Java сервер и прописать простейшее web-приложение.

Введение

Tomcat нужен для работы Java сервера с применением сервлетов. Если грубо говоря, то сервелеты это аналог тех же PHP скриптов. На сервер Tomcat от клиентов приходят запросы. В зависимости от них сервер запустит те или иные сервелеты, которые сформируют ответы в виде текстовых файлов. Чаще всего это HTML страницы.

Установка JDK

Устанавливаем JDK. Если уже до этого устанавливали, то повторно не устанавливаем.

Если у вас в папке с Java есть только папка с названием jdk , но нет с названием jre , то аналогичным способом устанавливаем jre (по ссылке JRE для Java 8):

Выбор скачиваемого файла

Папка jre в папке Java

Для работы современных версий Android Studio или IntelliJ IDEA не нужно производить дополнительные действия, чтобы программы могли найти JDK и запускать Java приложения. Но мы будем на данный момент компилировать сервлеты вручную, так что для удобства мы пропишем путь к папке JDK в системную переменную Path в Windows. Ниже приведена инструкция для Windows 10.

У меня JDK находится в папке C:\Program Files\Java\jdk1.8.0_121\bin .

Кликните правой кнопкой по иконке Этот компьютер и перейдите в Свойства :

Пункт «Свойства» контекстного меню

Дополнительные параметры системы

Переменные среды

Внимание! Не вздумайте удалять всё содержимое переменной Path . Иначе у операционной системы возникнут очень большие проблемы. Вы должны дописать в эту переменную нужный путь:

Изменение параметра Path

Добавление нового пути

Подтверждение добавления пути

Установка Apache Tomcat

Скачиваем установочный файл:

Раздел Download на сайте

Скачивание установщика

Начальное окно установщика

Соглашение с лицензией

Эти компоненты должны быть выбраны:

Выбор устанавливаемых компонентов

Для учебных целей можно параметры оставить по умолчанию:

Настройка параметров сервера

Далее нужно указать путь к JRE (устанавливается при установке JDK). Обычно программа сама находит папку:

Читайте также:  Return query results php

Выбор пути к JRE

Выбор папки установки Tomcat

Установка Tomcat

Завершение установки

После этого в трее должен появиться значок запущенного сервиса:

Значок запущенного сервиса

Перейдите по адресу http://localhost:8080/. Если вы видите это, то всё хорошо:

Запущенный сервер

Кстати, потом включать (например, при перезапуске компа) сервер можно запуском программы Monitor Tomcat из Пуска :

Программа Monitor Tomcat

Запуск сервера

Создание и сборка сервлета вручную

Напишем первое web-приложение вручную без каких-либо IDE.

Перейдем в папку, где установлен Tomcat. У меня это папка C:\Program Files\Apache Software Foundation\Tomcat 9.0 . Запомните этот путь, так как он вам еще много раз пригодится.

Выше говорилось, что сервлеты чем-то похожи на PHP скрипты (упоминание для тех, кто знает PHP). Но есть одна существенная разница. В PHP можно написать файл скрипта, закинуть в соответствующую папку и web-приложение готово. С Java такой трюк не пройдет. Нам соответствующие сервлеты нужно будет скомпилировать в байт-код и уже со сгенерированными .class файлами работать.

Итак, где-нибудь создайте произвольную папку. Советовал бы не использовать русские буквы, пробелы. И в пути к папке тоже желательно обойтись без русских букв. Я на рабочем столе создал папку testapp .

В ней создайте текстовой файл TestServlet.java с таким содержимым:

package com.example; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException  resp.setContentType("text/html;charset=utf-8"); PrintWriter pw = resp.getWriter(); pw.println("

Hello, world!

"
); > >

Это и есть код нашего сервлета. Мы создаем наследника класса HttpServlet . В нем реализуем один метод doGet() , в котором вначале сообщаем что сервлет будет выдавать HTML документ. Потом вытаскиваем из resp ссылку на экземпляр PrintWriter . И то, что мы будем писать в нем, будет отдано сервером на запрос от клиента.

Первое, на что нужно обратить внимание. Кодировка файла TestServlet.java должна быть UTF-8 . У многих проблема с компиляцией данного файла возникает именно из-за проблем с кодировкой. Вот так кодировка выглядит в Notepad++ :

Выбор кодировки файла

Не используйте стандартный блокнот Windows!

Второе. Класс наследуется от HttpServlet . И для компиляции программы нам будет нужен jar файл с нужными классами внутри.

В папке Tomcat есть папка lib . В ней есть файл servlet-api.jar :

Файл servlet-api.jar

Копируем его в нашу папку с Java файлом:

Файл servlet-api.jar в папке проекта

Третье. Мы разместили наш класс в пакете package com . example (у вас может быть другой). А это означает, что в папке, где лежит наш Java файл нужно создать папку com , в ней папку example , и уже туда переместить файл TestServlet.java .

У меня для наших двух файлов получились такие пути:

Теперь можем приступить к сборке. Открываем командную строку cmd :

Командная строка

Перейдем в папку, что мы создали для размещения наших файлов. Не забывайте после каждой команды в командной строке для её запуска нажимать Enter :

cd C:\Users\Harrix\Desktop\testapp 

Переход в папку проекта

И запустим сборку. Если у вас в системной переменной Path не прописан путь к JDK (описано в начале статьи), то команда не сработает:

javac -encoding UTF-8 -cp .;servlet-api.jar com\example\*.java 

Если эта команда не сработает, то используйте один из этих вариантов:

javac -classpath servlet-api.jar com\example\TestServlet.java 
javac -encoding UTF-8 -cp servlet-api.jar com\example\*.java 

Компилирование исходников

Если у вас не выведется список ошибок, а в папке с TestServlet.java файлом появится файл TestServlet.class , то всё получилось. Нам нужен будет этот файл и больше папка, созданная для сборки больше не пригодится:

Скомпилированный файл TestServlet.class

Собираем web-приложение

Перейдем опять в папку Tomcat. Там есть папка webapps с web-приложениями нашего сервера. В папке ROOT , как не сложно догадаться, располагается корневое приложение, которое вы видели при переходе на localhost:8080:

Папка webapps

В папке webapps создадим папку с названием web-приложения. Допустим, testingapp :

Созданная папка testingapp

В этой папке создайте папку WEB-INF , а в ней папку classes .

C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\testingapp\WEB-INF\classes

В папке classes у нас должны находиться файлы байт-кода наших классов. То есть тут должен появиться файл TestServlet.class . Но мы помним, что класс был определен в пакете com.example .

Поэтому в папке classes создаем папку com , а ней папку example . И уже в эту папку кидаем файл TestServlet.class .

C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\testingapp\WEB-INF\classes\com\example\TestServlet.class :

Файл TestServlet.class

Перейдем в папку WEB-INF . В ней создадим текстовой файл web.xml с таким содержанием:

Файл web.xml

   test com.example.TestServlet   test /test   

В тэге servlet-class мы указываем запускаемый класс сервлета, а в тэге url-pattern указываем url имя запускаемого сервлета.

Обязательно перезапустите сервер:

Остановка сервера

Запуск сервера

Всё сборка прошла успешно. Теперь можем проверить работу web-приложения. Для этого переходим по адресу:

Обратите внимание, что в адресе testingapp — это имя папки нашего приложения из папки webapps , а test — имя сервлета из тэга url-pattern из файла web.xml .

Если вы увидели в браузере это, то всё хорошо:

Работающее web-приложение

Если же увидели это, то что-то сделали не так. Проверьте свои шаги:

Ошибка 404

  • Tomcat-logo.svg by The Apache Software Foundation / (2020-02-02)

В статье рассказывается о том, как поднять на своем компьютере локальный Java сервер и прописать простейшее web-приложение.

В статье рассказывается о том, как поднять на своем компьютере локальный Java сервер и прописать простейшее web-приложение.

Harrix

Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.

Источник

Оцените статью