- •Міністерство освіти і науки україни
- •1 Лабораторна робота №3 corba
- •1.1 Теоретичні відомості про corba
- •1.1.1 Загальні відомості про corba
- •1.1.2 Ior-доступ до віддалених об'єктів
- •1.1.3 Мова idl
- •1.2 Завдання до лабораторної роботи
- •1.2.1 Порядок створення java corba-додатка
- •1.2.2 З'єднання із сервером без використання служби імен
- •1.3 Контрольні питання
- •1.4 Зміст письмового звіту
- •2 Лабораторна робота №4 java-сервлети
- •2.1 Теоретичні відомості
- •2.2 Завдання до лабораторної роботи
- •2.2.1 Створення і розгортання Web-додатку на основі сервлет-технології
- •2.2.2 Перший сервлет
- •2.2.3 Завдання 1
- •2.2.4 Робота сервлетів з протоколом http
- •2.2.5 Завдання 2
- •2.2.6 Завдання 3 – самостійна робота за індивідуальним варіантом
- •2.3 Контрольні питання
- •2.4 Зміст письмового звіту
- •Література для додаткового вивчення
- •Додаток а Індивідуальні варіанти до лабораторної роботи №3
- •Додаток б Конфігурування Web-додатків з використанням сервлет-технології
- •Додаток в Основні поняття html
- •Обов'язкові мітки html-документів
- •Форми html-документів
2.2.2 Перший сервлет
Створимо каталог для майбутнього сервлета: назвемо його ех1. У цьому каталозі створимо файл Hello.java і наберемо програмний код, який має вигляд:
import java.io.*;
import javax.servlet.*;
public class Hello extends GenericServlet
{
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<html><head><title>Hello Servlet");
pw.println("</title></head><body>");
pw.println("<H1 align=center>Hello World!<H1>");
pw.println("</body></html>");
pw.close();
}
}
Дамо пояснення коду:
для організації вводу-виводу імпортуємо пакет java.io.*;
імпортуємо пакет javax.servlet.*, який містить необхідні класи і інтерфейси;
успадковуємо клас GenericServlet: це забезпечує функціональні можливості, які полегшують обробку запитів і формування відповідей на них; дає можливість використовувати метод service();
аргумент request є об'єктом класу ServletRequest і дає можливість читати дані, отримані через клієнтський запит;
аргумент response – об'єкт класу ServletResponse – дозволяє сформувати відповідь клієнту;
метод setContentType() встановлює MIME-тип HTTP-відповіді (text/html), яка примушує браузер інтерпретувати текстовий формат відповіді в HTML-код; MIME-тип (Multipurpose Internet Mail Extension) призначений для вказівки типу вмісту заголовка HTTP-повідомлення;
метод getWriter() заповнює об'єкт PrintWriter; тепер все, що ми запишемо в цей потік (за допомогою методу println()), посилатиметься клієнтові як HTTP-відповідь на HTTP-запит. У нашому випадку це буде HTML-документ з рядком "Hello World!".
Далі нам необхідно відкомпілювати даний файл і, як успішний результат, отримати файл з розширенням *.class. Фактично немає необхідності тримати java-файл в даній директорії; можна його перемістити або видалити.
У директорії ех1 створюємо новий каталог, який назвемо WEB-INF, - в цьому каталозі створюємо новий каталог, який назвемо classes, тепер помістимо в нього наш файл.
У директорії «WEB-INF» створюємо конфігураційний файл web.xml, текст якого приведений нижче (Призначення елементів файлу web.xml викладено в Додатку Б):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<display-name>Hello servlet</display-name>
<description>Simple servlet</description>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>
</web-app>
Файл web.xml дає серверу інформацію про ім'я і клас завантажуваного сервлета. У свою чергу, вміст тега <servlet-mapping> повідомляє, з яким ім'ям сервлета асоціювати URL. Ми вказали /h, тому, при введенні в браузер http://localhost:8080/ех1/h, безпосередньо завантажується наш сервлет.
Тепер в каталозі ех1 створюємо просту веб-сторінку, яка матиме посилання на наш сервлет. Назвемо її index.html. Коли вводитимемо в браузері http://localhost:8080/ех1, автоматично відкриється веб-сторінка, оскільки файл з ім'ям index.html завантажується браузером автоматично. Текст HTML-файлу наведений нижче:
<html>
<head>
<title> The source to get servlet </title>
</head>
<body>
<a href="h">GET_SERVLET</a>
</body>
</html>
Помістимо каталог ex1 в каталог webapps сервера Apache Tomcat.
Завантажуємо сервер Apache Tomcat, запустивши файл startup.bat, який знаходиться за адресою: tomcat\bin
Запустимо браузер і введемо: http://localhost:8080/ex1/
Відкриється створена нами веб-строрінка index.html, і у вікні браузера побачимо повідомлення «».
Натиснувши на посилання, ми завантажимо в адресний простір сервера localhost (127.0.0.1) сервлет Hello і побачимо у вікні браузера повідомлення Hello! Такий же результат отримаємо і безпосередньо ввівши URL сервлета: http://localhost:8080/ex1/h.
Для завершення роботи з Apache Tomcat запустіть файл shutdown.bat.
