- Простейшее web-приложение на Java на сервере Tomcat
- Введение
- Установка JDK
- Установка Apache Tomcat
- Создание и сборка сервлета вручную
- Собираем web-приложение
- Harrix
- Configure Tomcat for Java web
- Table of contents
- Introduction to Tomcat
- Configure Tomcat in Eclipse
- Configure Tomcat server to deploy web application
- Some errors in Eclipse when configure Tomcat
- Wrapping up
Простейшее web-приложение на Java на сервере Tomcat
В статье рассказывается о том, как поднять на своем компьютере локальный Java сервер и прописать простейшее web-приложение.
Введение
Tomcat нужен для работы Java сервера с применением сервлетов. Если грубо говоря, то сервелеты это аналог тех же PHP скриптов. На сервер Tomcat от клиентов приходят запросы. В зависимости от них сервер запустит те или иные сервелеты, которые сформируют ответы в виде текстовых файлов. Чаще всего это HTML страницы.
Установка JDK
Устанавливаем JDK. Если уже до этого устанавливали, то повторно не устанавливаем.
Если у вас в папке с Java есть только папка с названием jdk , но нет с названием jre , то аналогичным способом устанавливаем jre (по ссылке JRE для Java 8):
Для работы современных версий Android Studio или IntelliJ IDEA не нужно производить дополнительные действия, чтобы программы могли найти JDK и запускать Java приложения. Но мы будем на данный момент компилировать сервлеты вручную, так что для удобства мы пропишем путь к папке JDK в системную переменную Path в Windows. Ниже приведена инструкция для Windows 10.
У меня JDK находится в папке C:\Program Files\Java\jdk1.8.0_121\bin .
Кликните правой кнопкой по иконке Этот компьютер и перейдите в Свойства :
Внимание! Не вздумайте удалять всё содержимое переменной Path . Иначе у операционной системы возникнут очень большие проблемы. Вы должны дописать в эту переменную нужный путь:
Установка Apache Tomcat
Скачиваем установочный файл:
Эти компоненты должны быть выбраны:
Для учебных целей можно параметры оставить по умолчанию:
Далее нужно указать путь к JRE (устанавливается при установке JDK). Обычно программа сама находит папку:
После этого в трее должен появиться значок запущенного сервиса:
Перейдите по адресу http://localhost:8080/. Если вы видите это, то всё хорошо:
Кстати, потом включать (например, при перезапуске компа) сервер можно запуском программы 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 :
Копируем его в нашу папку с Java файлом:
Третье. Мы разместили наш класс в пакете 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 , то всё получилось. Нам нужен будет этот файл и больше папка, созданная для сборки больше не пригодится:
Собираем web-приложение
Перейдем опять в папку Tomcat. Там есть папка webapps с web-приложениями нашего сервера. В папке ROOT , как не сложно догадаться, располагается корневое приложение, которое вы видели при переходе на localhost:8080:
В папке webapps создадим папку с названием web-приложения. Допустим, 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 :
Перейдем в папку WEB-INF . В ней создадим текстовой файл web.xml с таким содержанием:
test com.example.TestServlet test /test
В тэге servlet-class мы указываем запускаемый класс сервлета, а в тэге url-pattern указываем url имя запускаемого сервлета.
Обязательно перезапустите сервер:
Всё сборка прошла успешно. Теперь можем проверить работу web-приложения. Для этого переходим по адресу:
Обратите внимание, что в адресе testingapp — это имя папки нашего приложения из папки webapps , а test — имя сервлета из тэга url-pattern из файла web.xml .
Если вы увидели в браузере это, то всё хорошо:
Если же увидели это, то что-то сделали не так. Проверьте свои шаги:
- 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.
Configure Tomcat for Java web
In this turorial, we will find out about how to configure Tomcat in eclipse, and how to configure Tomcat to deploy web application.
Table of contents
Introduction to Tomcat
Tomcat is actually composed of a number of components, including a Tomcat JSP engine and other connectors, but the main component is Catalina, which provides the implementation of the servlet specification. When starting the Tomcat server, it’s Catalina that is actually starting. The variable CATALINA_HOME is a configuration property that stores the location of the Catalina files.
These are the configuration files in Tomcat’s CATALINA_BASE/conf directory:
Configure Tomcat in Eclipse
- The first thing we have to do is to download Apache Tomcat in a link such as https://tomcat.apache.org/download-90.cgi.
- Unzip this file and we have;
- This step we will add Tomcat into our Eclipse:
And click Apply and Close to agree our Tomcat version.
Configure Tomcat server to deploy web application
After we unzip Tomcat file, we will do something like:
- specify JDK for Tomcat.
- Open startup.bat file in bin folder of Tomcat. (With Linux/Ubuntu OS, we have startup.sh file).
- We will add some code into startup.bat file.
# With Windows set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_181" # With Linux/Ubuntu JAVA_HOME="/usr/lib/jvm/open-jdk"
- manager-gui — allows access to the HTML GUI and the status pages
- manager-script — allows access to the text interface and the status pages
- manager-jmx — allows access to the JMX proxy and the status pages
- manager-status — allows access to the status pages only
We can declare a user with 4 roles
rolename="manager-gui"/> rolename="manager-script"/> rolename="manager-jmx"/> rolename="manager-status"/> username="tomcat" password="mypassword" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Some errors in Eclipse when configure Tomcat
- WARNING: Unable to load server configuration from . server.xml We only need to copy a path E:\apache-tomcat-9.0.16\conf into our path where has error.
- Getting 404 — Page not found error
We can solve this error that follows some steps:
- Step 1
- Go to Eclipse IDE
- Click on Servers Tab
- Double click on Tomcat v9.0 Server at localhost
- Step 2
- New Apache Tomcat configuration page will open
- Go to Server Location section
- Select Use Tomcat installation (takes control of Tomcat installation)
- Step 3
- Save configuration
- Restart Server by right clicking on tomcat server and click Restart
- Visit http://localhost:8080 again and now you should see working tomcat page
- Step 1