Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1.docx
Скачиваний:
8
Добавлен:
17.04.2019
Размер:
193.35 Кб
Скачать

Основной поток cgi-программ

Для обработки каждого запроса клиента необходимо создавать отдельный процесс с запуском отдельного экземпляра CGI-программ. С ростом числа запросов нагрузка на сервер быстро возрастает. Быстродействие CGI-программ снижается.

CGI-программу можно записать на языке программирования JAVA. Однако для ее работы необходимо запускать виртуальную машину JAVA JVM. Если вызовы CGI-программы будут повторяться то создание JDM при каждом вызове приведет к большой потере ресурсов. Поэтому при разработке серверных программ с использованием JAVA к web-серверу присоединяют дополнительный модуль. Он запускает JDM при первом вызове и выполняет все программы под ее управлением. Такой модуль называется контейнером. Web-сервер с web-контейнером называются JAVA-web-сервером. На рынке имеется большое количество web-контейнеров для различных web-серверов. Наиболее популярным из них является Tomcat. Он используется как самостоятельно так и составе web-сервера (Apache, JBoss и др.).

Сервлет. Технология java

Серверные программы написанные на JAVA выполняемые под управлением JAVA web-сервера называются сервлетами. Для разработки сервлетов фирма Sun создала большой набор интерфейсов и классов получивших название ServletAPI(Application Programming Interface).Основные из них находятся в пакетах javax.servlet и javax.servlet.http. При этом наиболее важным из них является интерфейс servlet реализован классом HTTP.Servlet который учитывает работу с протоколом http. В этом классе метод progress Re quest() не реализован (данный метод характерен для среды Net Beans). Поэтому чтобы создать свой сервлет необходимо наследовать класс http-Servlet реализовав расширение метод progress Re quest() (при создании сервлета вне среды Net Beans вместо метода progress Re quest() используют метод service()). В сервлет APIдля работы в http используют протоколы HTTP Servlet Re quest и HTTP Servlet Response. Web-контейнер реализует эти интерфейсы. При этом он производит синтаксический разбор http-запроса и формирует динамический http-ответ. В примере HelloServlet.java эти объекты названы req и res соответственно. Значение параметров запроса Servlet получает из объекта req в виде строки используя имена параметров переданные html-формы. Например:

string name=req.getParametr(“name”);

Чтобы использовать особенности метода передачи интерфейса getpost протокола http.servlet используются методы doGette(), doPost(). Динамический html передается через символьный выходной поток с использованием объекта типа HTTPServletResponse. Для этого он использует метод getWriter(), который возвращает объект PrinterWriter.

PrinterWriter out=res.getWriter();

Тип содержимого ответа и его кодировку устанавливает метод SetContextType().

res setContextType(“text/html;charset=Windows 1251”);

Метод out.println()используется для вывода строк кода html-документа ответа в символьный поток. Этот документ отображается браузером клиента и ни чем не отличается от обычных статических web-страниц хранящаяся на сервере.

Компоненты ejb

Любую задачу на сервере в принципе можно решить с помощью сервлета. Однако нетривиальные задачи имеют большой объем JAVA-кода. В этом случае сервлеты могут стать весьма грамосткими. Их код плохо воспринимается и модифицируется. Для преодоления этих проблем фирма Sun разработала спецификацию компонентов EJB (Enterprise JAVA Beans), а также пакет классов и интерфейсов для работы с ними javax.ejb. Реализуют EJB-компоненты, EJB-контейнер, JAVA web-сервер. Компоненты EJB бывают трех типов:

  1. Entity Bean;

  2. Session Bean;

  3. Message Driven Bean.

Entity Bean удобен для изменения информации из баз данных и преобразования ее в объекты JAVA.

Session Beanкомпоненты удобны для организации сеанса связи с пользователем и сложных вычислений по запросам клиента.

Имеется два вида Session Bean-компонента:

а) State full Session Bean;

b) State less Session Bean.

State full – компоненты могут сохранять свое состояние, передавать его от запроса к запросу.

State less теряет свое состояние после выполнения запроса.

Message Driven Bean предназначен для обмена сообщениями по технологии JMS (JAVA Message Service).

При создании EJB-компонентов разработчик кроме создания класса реализующего тот или иной тип EJB должен написать 1 (2) интерфейса для взаимодействия с ним. Так в примере HelloServlet.java участок кода:

import my HelloSessionLocal;

private HelloSessionLocal h;

message_ejb=h.sayHello();

Используется как для создания объекта типа локального ejb-интерфейса, так и вызова с его использованием ejb-метода sayHello().

IDBC

IDBC – стандарт доступа JAVA-приложений к СУБД. В настоящее время используют стандарты IDBC 2.0 и IDBC 3.0. IDBC API состоит из двух пакетов: java.sql и javax.sql. Для работы с базами данных рекомендуется использовать IDBC-драйвер поставляемый для конкретной СУБД фирмой-производителем. В крайнем случае, если драйвер IDBC не существует можно использовать Sun-ODBC-IDBC входящей в стандарты jdk-java начиная с v.1.0. Важнейшими интерфейсами IDBC-API является:

Интерфейс

Назначение

Connection

Осуществляет связь с СУБД используя класс DriverManager

Statement, Prepared Statement, Callable Statement

Выполняет sql-утверждение

Result Set

Возвращает набор данных после выполнения SQL-запроса

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]