Сървъри за приложения

Apache Tomcat е проект с отворен код, който прилага спецификацията на контейнера за сервлети и спецификацията на JavaServer Pages (JSP). Използва се като самостоятелен сървър за уеб приложения, като сървър за съдържание във връзка с уеб сървъра Apache и като контейнер за сервлети в сървърите за приложения JBoss и GlassFish. Тази лаборатория ще инсталира и конфигурира Tomcat като сървър за уеб приложения, работещ с OpenSuSE 12.2.

Цел на работата:Инсталирайте и изпълнете основна конфигурация на Apache Tomcat като сървър за уеб приложения.

Задачи за работа

Инсталиране на Java и Tomcat

1. Инсталирайте Java Development Kit (JDK)

Tomcat изисква инсталирана среда за разработване на Java приложения (Java Development Kit, JDK). Можете да проверите коя версия е инсталирана в системата, например, така:

В примера по-горе системата има (символi(nstalled)) версия 1.7 на OpenJDK, безплатен комплект за разработка, който е напълно съвместим с Sun (Oracle) JDK, инсталиран в системата.

Ако нито един от наличните пакети не е инсталиран, той трябва да бъде инсталиран:

Можете да проверите резултатите от инсталацията, както е описано по-горе.

Можете да разберете пътя, където се намира средата за изпълнение на Java от променливата на средата $JAVA_HOME:

И можете да разберете номера на инсталираната (и използваната) версия на JDK по този начин:

2. Инсталирайте Tomcat

Инсталирането на Tomcat и свързаните с него пакети от хранилището се извършва по обичайния начин:

След потвърждение необходимите пакети ще бъдат изтеглени и инсталирани. В същото време в системата ще бъдат създадени следните поддиректории (инсталация по подразбиране в OpenSuSE 12.2, действителното местоположение зависи от комплекта за разпространение и версията на ОС иверсии на самия Tomcat):

  • /usr/share/tomcat/bin: контролни скриптове;
  • /etc/tomcat/conf: конфигурационни файлове (server.xml, web.xml, context.xml, tomcat-users.xml);
  • /usr/share/java/tomcat/lib: буркани, използвани от всички разширения и уеб приложения на Tomcat;
  • /var/log/tomcat: лог файлове;
  • /srv/tomcat/webapps: директория, съдържаща уеб приложения (сървлети и JSP);
  • /var/cache/tomcat/work: Работната директория на Tomcat, която се използва предимно при конвертиране на JSP страници в сървлети;
  • /var/cache/tomcat/temp: временни файлове.

Символните връзки към посочените директории също ще бъдат поставени в директорията /usr/share/tomcat. Пътят до домашната директория на Tomcat може да бъде записан в променливата на средата $CATALINA_HOME (export CATALINA_HOME='/usr/share/tomcat/').

3. Стартиране и спиране на сървъра

Ако инсталацията е била успешна, можете да опитате да стартирате Tomcat:

Скриптът catalina.sh се използва за ръчно стартиране и спиране на сървъра Tomcat. За автоматично стартиране можете да използвате сервизния скрипт ( service tomcat startstoprestart ), първо трябва да посочите нивата на изпълнение, на които ще стартира tomcat демонът (вижте chkconfig)

Catalina е името на компонента Tomcat, който директно изпълнява функциите на контейнера на сервлета. Това име се използва в по-ранни версии (преди Tomcat5) за целия продукт. Други компоненти в системата са Coyote, който поддържа HTTP 1.1 транспорт, и Jasper, който е проектиран да обработва JSP (разбор на JSP файлове и компилирането им в Java код, който след това се изпраща за обработка от Catalina).

сървъри

Ориз. 1. Начална страница по подразбиране на сървъра Apacheкотка

Можете да спрете ръчно стартирания Tomcat по следния начин:

Настройване на сървъра Tomcat

За конфигуриране на сървъра Tomcat се използват следните XML конфигурационни файлове, разположени в директорията $CATALINA_HOME/conf/:

  • server.xml: Общи настройки на сървъра (портове, виртуални хостове и т.н.).
  • web.xml: Настройки, общи за ВСИЧКИ уеб приложения на текущия сървър. Настройките на отделните уеб приложения се задават в техните собствени файлове /WEB-INF/web.xml (тук можете да направите аналогия с използването на файла .htaccess в Apache).
  • context.xml: Общи настройки за управление на съдържанието.
  • tomcat-users.xml: Списък с потребители и групи (роли).

conf/server.xml - Промяна на номера на порта

По подразбиране Tomcat използва TCP порт 8080 и портове 8009 и 8005 за приемане на входящи връзки:

Тези портове могат да бъдат променени на други, които не се използват от други мрежови услуги, като ги промените във файла conf/server.xml. За да накарате Tomcat да работи например на порт 8081, трябва да намерите следния ред във файла conf/server.xml и да промените стойността на атрибута на порта на желаната (8081), след което рестартирайте сървъра:

conf/web.xml - Разрешаване на списък с директории

За да настроите показването на списък с файлове в директории (listing), трябва да промените стойността на атрибута listings от false (false) на true (true) в блока за настройки на сервлета по подразбиране ("default"-servlet) във файла conf/web.xml. Това е полезно при разработване и отстраняване на грешки в уеб приложения, но не се препоръчва за използване на производствен сървър от съображения за сигурност.

conf/context.xml - Настройка на автоматично презареждане на страницата

Възможно е да принудите Tomcat да се рестартира автоматично след промянакод. Трябва да добавите reloadable атрибута със стойността "true" към елемента на файла conf/context.xml. Това е доста полезно в процеса на разработване и отстраняване на грешки в сървлети, но отново не се препоръчва в крайния продукт.

conf/tomcat-users.xml - Управление на потребители и роли

Файлът conf/tomcat-users.xml е предназначен за управление на потребителите, които могат да управляват сървъра Tomcat. За да създадете, например, потребител на мениджър, който може да управлява уеб приложения чрез графична обвивка (предварително дефинирания мениджър на ролите gui), трябва да добавите запис като този към този файл:

Разработване и разпространение на уеб приложения, поддържани от Tomcat

Нека да разгледаме няколко примера за използване на Tomcat за разработване на уеб приложения в Java. Тук няма да се фокусираме върху програмните кодове като такива, тъй като на това е посветена отделна дисциплина - „Обектно-ориентирано програмиране на езика Java“.

Създаване на директорийна структура и хостване на уеб страници

Всички уеб приложения се хостват в директорията webapps (/srv/tomcat/webapps). Всяко приложение се хоства в собствена директория със същото име със специфична вложена структура (webapps/youappname/WEB-INF/classes). За ново уеб приложение (например myapp) тази структура може да бъде създадена например по следния начин:

Целта на създадените директории е следната:

  • myapp: Основната директория на уеб приложението. Той хоства HTML страници и други ресурси (стилови таблици (CSS), изображения, скриптове от страна на клиента (javascript), JSP и т.н.), достъпни за уеб клиенти.
  • myapp/WEB-INF: Недостъпна за уеб потребители, тази директория съдържа описанието на уеб приложението и неговите настройки във файла web.xml.
  • myapp/WEB-INF/classes: Тази директория съдържа всички файлове на Java класовесервлети.

Нека поставим файла index.html в главната директория на създаденото уеб приложение със следното съдържание:

сървъри

Ориз. 2. Показване на статични страници

Страници на Java сървър

Java Server Pages (JSP) - динамични уеб страници, съдържащи, в допълнение към HTML маркирането, инструкции на езика Java (като PHP или ASP). Такива ресурси се разпределят и използват по същия начин като статичните ресурси. Примерен JSP е показан в листинг 1, а резултатът е показан на фигура 1. 3.

Листинг 1. Примерно JSP маркиране

сървъри

Ориз. 3. Изобразяване на JSP страници

Забележка: Ако получите грешка като тази при достъп до JSP страницата: org.apache.jasper.JasperException: java.lang.IllegalStateException: Няма изходна папка. , това най-вероятно означава, че директорията tomcat/work не може да се записва. Използвайте chmod -R a+w tomcat/work, за да зададете разрешения или chown, за да промените собствеността.

Всички сървлети (сървърни приложения на Java) се намират в поддиректорията WEB-INF/classes/. Нека да разгледаме използването на сървлети с помощта на примерно приложение, което показва информация за сървър (списък 1).

Листинг 1. Изходен код на Java сървлет

Следващата стъпка е компилация. Това може да се направи от средата за разработка, която използвате (Eclipse, NetBeans, IntelliJ и др.) или от командния ред. В случай на използване на openJDK и Tomcat 7, ще изглежда по следния начин:

В резултат на компилацията файлът MyServlet.class ще бъде създаден в директорията WEB-INF/classes. Сега трябва да конфигурираме Tomcat да го използва.

Конфигуриране на сервлет достъп

Сървърът трябва да се рестартира, за да влязат в сила промените. Резултатът от изпълнението на сервлета е показан на фиг. 4.