
- •Лабораторна робота №1 з курсу „Web програмування”
- •Теоретична частина
- •Хід роботи Установка і запуск Tomcat:
- •Створення контексту web-додатку:
- •Створення сервлету:
- •Керування web-додатками за допомогою Tomcat Manager
- •Віддалене керування web-додатком за допомогою Tomcat Manager
- •Віддалене керування елементами сервера за допомогою Tomcat Administration Tool
Хід роботи Установка і запуск Tomcat:
Розархівувати архів з Tomcat у потрібний каталог. Надалі будемо посилатися на цей каталог за допомогою позначення $CATALINA_HOME, а каталог, де встановлений Java Software Development Kit, позначимо $JAVA_HOME.
Створити змінну оточення CATALINA_HOME із значенням $CATALINA_HOME, наприклад:
CATALINA_HOME = d:\Programs\Tomcat5,
а також змінну оточення JAVA_HOME – із значенням $JAVA_HOME, наприклад:
JAVA_HOME = d:\programs\jdk1.6.3
Пересвідчитися, що в каталозі $JAVA_HOME\jre\lib\ext\ знаходиться файл servlet-api.jar. У противному випадку – скопіювати туди цей файл з каталогу $CATALINA_HOME\common\lib.
Запустити Tomcat за допомогою файлу $CATALINA_HOME\bin\startup.bat.
Запустити web-браузер та задати в адресному рядку таку адресу: http://localhost:8080
Відкриття головної сторінки Tomcat (рис. 2) означає успішну установку.
Рис. 1. Головна сторінка Tomcat.
Зупинити Tomcat за допомогою файлу $CATALINA_HOME\bin\shutdown.bat.
Створення контексту web-додатку:
Контекстом web-додатку називають каталог, який містить сервлети, jsp-сторінки, html-сторінки та інші файлb, що відносяться до одного web-додатку. По замовчуванню контексти web-додатків мають знаходитися в каталозі $CATALINA_HOME\webapps.
Створити каталог з назвою свого додатку, наприклад:
$CATALINA_HOME\webapps\myapp
Всередині каталогу myapp створити каталог WEB-INF.
Всередині каталогу myapp створити каталог META-INF.
Всередині каталогу WEB-INF створити каталог classes
Увага: великі та маленькі літери в назвах каталогів розрізняються.
Створення сервлету:
Створити текстовий файл з Java-кодом сервлету. Як правило ви створюєте його в папці, де ви маєте повний доступ. Проте для економії часу ви можете створювати його в каталозі classes всередині вашого проекту.
Зберегти отриманий файл під назвою MySuperServlet.java.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MySuperServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Super Test Page</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H1 align=center>Hello, World!</H1>");
out.println("</BODY></HTML>");
}
}
Увага: ім’я цього файлу має співпадати з іменем класу сервлета в коді. Великі і маленькі літери розрізняються.
Скомпілювати MySuperServlet.java, викликавши з командного рядка наступну команду:
javac MySuperServlet.java
В результаті успішної компіляції повинен створитися файл MySuperServlet.class.
Розмістити створений клас сервлету на сервері Tomcat, скопіювавши файл MySuperServlet.class у каталог $CATALINA_HOME\webapps\myapp\WEB-INF\classes. Якщо ж він вже був розміщений в цьому каталозі, то необхідно пропустити цей крок.
Створити файл конфігурації вашого проекту в каталозі WEB-INF. Даний файл називається web.xml Для його створення можна піти двома шляхами:
використати приклад такого файлу, який знаходиться в каталозі $CATALINA_HOME\conf просто скопіювавши його до необхідного нам каталогу. Після цього внести в нього свої зміни
Створити його власноруч
Приклад такого файлу наведено нижче.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>My Super Projects</display-name>
<description>
Вказують назву вашого проекту.
</description>
<!-- ================== Built In Servlet Definitions ==================== -->
<!-- Тут вказуються всі сервлети, JSP сторінки та інше, які будуть -->
<!-- використані на вашому сайті. Необхідно пам’ятати, що назву класу -->
<!-- вказують з вказанням вкладеності пакетів -->
<servlet>
<servlet-name>MySuperServlet</servlet-name>
<servlet-class>MySuperServlet</servlet-class>
</servlet>
<!-- ================ Built In Servlet Mappings ======================= -->
<!-- Маппінг призначений для визначення того, який саме сервлет вуде -->
<!-- викликатися в залежності від рядка, що заданий в броузері -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MySuperServlet</servlet-name>
<url-pattern>/MySuperServlet</url-pattern>
</servlet-mapping>
<!-- ==================== Default Welcome File List ===================== -->
<!-- Коли відбувається звернення до деякої директорії в вашому проекті -->
<!-- то маппінг сервлета по замовчуванню буде шукати в цій директорії -->
<!-- один з файлів, які вказані як початкові. Якщо їх нема, то буде -->
<!-- повертатися лістинг даної директорії або статус 404(не знайдено файл)-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Створити файл myapp.xml всередині каталогу $CATALINA_HOME\conf\Catalina\localhost. Даний файл призначений для вказання де саме знаходиться директорія з нашим сайтом на жорсткому диску (сайт не обов’язково повинен міститися в директорії $CATALINA_HOME\webapps). За це відповідає параметр docBase.
<Context
path="/myapp"
docBase="/myapp"
debug="0"
reloadable="true">
</Context>
Запустити Tomcat за допомогою файлу $CATALINA_HOME\bin\startup.bat.
Звернутися до отриманого сервлету, ввівши таку адресу в web-браузері:
http://localhost:8080/myapp/MySuperServlet
Результат виконання сервлету зображено на рис. 3.
Рис. 2. Результат виклику сервлету MySuperServlet.
Змінити код сервлету MySuperServlet таким чином, щоб він виводив будь-який інший текст. Перекомпілювати, розмістити на сервері та викликати сервлет знову. Пересвідчитися, що зроблені зміни дійсно відображаються у згенерованій web-сторінці.