18117

Технологія Java Servlet

Лекция

Информатика, кибернетика и программирование

Тема 2: Технологія Java Servlet Сервлет Javaобєкт що працює всередині спеціальної програми сервлетконтейнера і застосовується для динамічного генерування даних. Кожен сервлет описується в окремому класі який реалізує інтерфейс Servlet. В більшості сервлети використовуються...

Украинкский

2013-07-06

52.5 KB

5 чел.

Тема 2: Технологія Java Servlet

СервлетJava-об’єкт, що працює всередині спеціальної програми сервлет-контейнера і застосовується для динамічного генерування даних. Кожен сервлет описується в окремому класі, який реалізує інтерфейс Servlet. В більшості сервлети використовуються для динамічного генерування Web-сторінок. В цьому випадку сервлет-контейнер повинен бути зв’язаний з Web-сервером (або можна сказати, Web-сервер повинен підтримувати роботу з сервлетами). Взаємодія сервлетів з клієнтами реалізована згідно із парадигмою запит-відповідь. Сервлети, що генерують Web-сторінки, працюють за протоколом HTTP (є HTTP-сервлетами). Для таких сервлетів існує абстрактний клас HttpServlet, від якого розробникам пропонується успадковувати свої сервлети. Такі сервлети є альтернативами таких технологій, як CGI, ISAPI, PHP, Perl тощо.

Першим web-сервером, який підтримував сервлети, став випущений компанією JavaSoft сервер Jeeves, який потім назвали Java Web Server (JWS). Існує велика кількість інших web-серверів з підтримкою сервлетів. Для стандартних web-серверів, таких, як Netscape, IIS, Apache, JavaSoft пропонується Java Servlet Developers Kit, що дозволяє завантажувати сервлети на більшості зі стандартних серверів. В даний час широко використовується web-сервер з сервлет-контейнером Apache Tomcat.

Схема роботи сервлету:

  1.  Клієнт (наприклад, Web-броузер), при виконанні користувачем певних дій на web-сторінці, надсилає HTTP запит на web-сервер.
  2.  Web-сервер отримує запит і, визначивши, що запит іде до сервлета, передає його контейнеру сервлетів. Контейнер сервлетів може виконуватись в тому ж самому процесі, що і web-сервер, в окремому процесі на тій же системі, що і web-сервер, або взагалі на іншій системі.
  3.  Контейнер сервлетів з'ясовує, який сервлет слід викликати, виходячи з інформації про наявні сервлети, та викликає його, передаючи в якості параметрів об'єкти запиту та відповіді.
  4.  Сервлет використовує об'єкт запиту для отримання інформації про віддаленого користувача, параметри HTTP запиту, тощо. Сервлет виконує запрограмовані в ньому дії та надсилає результати роботи через об'єкт відповіді.
  5.  Після того, як сервлет припиняє обробку запиту, контейнер сервлетів перевіряє коректність відправки відповіді та повертає управління до web-сервера, який, в свою чергу, пересилає відповідь клієнту.

Зразок створення сервлету

Продемонструємо процес створення Java-сервлету на традиційному прикладі програми "Hello World". Цей сервлет буде виводити вітання з ім'ям користувача і кількістю запитів, виконаних з моменту запуску сервлету.

Всі сервлети створюються шляхом реалізації базового інтерфейсу Servlet і визначення Java-методів для обробки звернень, що надходять. У даному прикладі використаємо клас HttpServlet, який розуміє HTTP-протокол і обробляє велику частину необхідних для Web-програм особливостей.

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class FirstServlet extends HttpServlet {

int connections;

public void init(ServletConfig conf) throws ServletException {

 super.init(conf);

 connections = 0;

}

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws IOException{

 //Get а channel to the Web browser, so we can send output

 PrintWriter out = res.getWriter();

 res.setContentType("text/html"); // Required for HTTP

 out.println("<HTML><HEAD><TITLE>Servlets 101</TITLE></HEAD>");

 out.print("Say hello to Java Servlet Programming ");

 out.println(req.getParameter("userName"));

 out.print("<p>You are caller number ");

 connections++;

 out.println(Integer.toString(connections));

 out.close(); //Close the output stream

}

}

Як тільки Java-код написаний, його потрібно скомпілювати (в найпростішому випадку javac FirstServlet.java) і помістити одержаний файл на Web-сервер. Як помістити файл FirstServlet.class на сервер –  залежить від виду сервера.

Для виконання і перевірки з Web-браузера, потрібно ввести, наприклад,  адресу: http://localhost:8080/servlet/FirstServlet?userName=John 

В даному випадку "userName=John" – це вхідний параметр сервлету. 

Розбір складових частин сервлету

Клас HttpServlet визначає методи для роботи з різними видами HTTP-з'єднань. В даному випадку використовуються два методи - init() і doGet().
HttpServlet.init(ServletConfig conf) виконується тоді, коли сервлет вперше завантажується. Будь-які створені тут ресурси (за умови, що вони видні у всьому класі, наприклад, поля-об’єкти) будуть доступні при кожному зверненні до сервлету. Саме тут створюються глобальні змінні і будь-які ресурси, не залежні від індивідуальних звернень до сторінки. У даному (спрощеному) варіанті ініціалізується змінна для зберігання відомостей про кількість звернень до даної сторінки.

HttpServlet.doGet (HttpServletRequest, HttpServletResponse) приймає два параметри - HttpServletRequest і HttpServletResponse. Це Java-об'єкти, які обмінюються інформацією між сервлетом і сервером. У даному прикладі HttpServletResponse одержує PrintWriter, який дозволяє нам посилати інформацію назад Web-браузеру.

Трьома методами, якими скористались, є:

PrintWriter.println(String s) – Посилає браузеру рядок символів, що закінчується CR LF. PrintWriter.print(String s) – Посилає браузеру рядок символів без CR LF.

PrintWriter.close() – Закриває потік.

Також використовується метод setContentType(String contentType) для повідомлення браузеру, до отримання якого виду даних він повинен бути готовий. Зазвичай, це "text/html".

HttpServletRequest включає всю інформацію, що надається сервлету браузером і Web-сервером (інформація про оточення, змінні HTTP, змінні форм і т.п.). Метод HttpServlet.getParameterName(String) використовується для читання змінних HTML-форм. В цьому випадку сервлету передається змінна під назвою "userName" із значенням "John", а команда req.getParameter("userName") повертатиме змінну типу String, що містить текст "John".


 

А также другие работы, которые могут Вас заинтересовать

21798. Показатели и критерии оценки систем 504.5 KB
  2 Шкала уровней качества системы 5. Автоматизированные системы создаются для реализации ряда операций. Это зависит от условий протекания операций качества системы реализующих операции и способов достижения требуемых результатов.1 Соотношение понятий качества и эффективности Таблица 1 Соотношение понятий качества и эффективности Понятие Качество Эффективность Определяет Свойства или совокупность свойств системы обусловливающих ее пригодность для использования по назначению.
21799. Методы количественного оценивания систем 130 KB
  1 Общая характеристика количественных методов оценивания Исходная задача количественного оценивания систем формулировалась в терминах критерия превосходства вида: 6. Таким образом наличие неоднородных связей между отдельными показателями приводит к проблеме корректности критерия превосходства. Общность подходов состоит в том что оценивание систем по критериям производится с помощью шкал. Методы устранения многокритериальности задач принятия решений: Выделения главного критерия; Лексикографической оптимизации; Последовательных уступок;...
21800. Основы организационно-технического управления 177.5 KB
  1 Задачи организационнотехнического управления 10.3 Аксиомы теории управления 10. В теории управления принято считать что системы с управлением создаются для достижения конкретных целей которые определяются в рамках других наук занимающихся исследованием конкретных систем.
21801. Описание основных функций организационно-технического управления 142.5 KB
  1 Классификация процессов управления 11.2 Содержательное описание функций управления Литература 1 Анфилатов В. Управление заключается в преобразовании информации состоянии объекта управления в командную информацию.
21802. Принятие решений в условиях нестохастической неопределенности 116.5 KB
  Критерий среднего выигрыша. Данный критерий предполагает задание вероятностей состояния обстановки . Эффективность системы оценивается как среднее ожидаемое значение МОЖ оценок эффективности по всем состояниям обстановки оптимальной системе будет соответствовать эффективность Критерий Лапласа. Критерий Лапласа частный случай критерия среднего выигрыша.
21803. Модели основных функций организационно-технического управления 190 KB
  Центральными понятиями в теории принятия решений являются: универсальное множество вариантов альтернатив из которых осуществляется выбор; предъявление множество альтернатив предъявленных для выбора ; множество выбранных альтернатив в частности одна ; С принцип выбора функция выбора правило по которому осуществляется выбор наилучшей альтернативы . Функция выбора может задаваться поэлементно или в виде графика какойлибо зависимости или как целостное множество удовлетворяющее некоторым условиям. Часто в задачах принятия...
21804. Оценка сложных систем в условиях риска на основе функции полезности 105 KB
  В этом случае целесообразно использовать аксиоматический подход к оценке систем на основе теории полезности. Эффективность систем в вероятностных операциях находится через математическое ожидание функции полезности на множестве исходов . все компоненты векторного критерия на основе предпочтений ЛПР преобразуются в функции полезности компонентов и лишь затем осуществляется свертывание.
21805. Принципы и структура системного анализа 106.5 KB
  Специфической особенностью методики системного анализа является то что она должна опираться на понятие системы и использовать закономерности построения функционирования и развития систем. Общим для всех методик системного анализа является определение закона функционирования системы формирование вариантов структуры системы нескольких альтернативных алгоритмов реализующих заданный закон функционирования и выбор наилучшего варианта осуществляемого путем решения задач декомпозиции анализа исследуемой системы и синтез системы снимающей...
21806. Роль и место теории принятия решений в структуре подготовки специалиста 76 KB
  1 Роль и место теории принятия решений в структуре подготовки специалиста Общие свойства управления исследуются в кибернетике см. Проблемы управления техническими системами без участия человека в теории автоматического управления ТАУ. Особенности управления в социальноэкономических системах изучаются в рамках менеджмента управление в современных организационно технических системах предмет настоящей дисциплины в теории автоматизированных систем управления АСУ. Системный анализ наиболее конструктивное направление используемое...