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

Компоненты j2ee

Приложения J2EE делаются из компонентов. Компонент J2EE - это самостоятельная функциональная программная единица, которая собирается в приложение J2EE вместе с относящимися к ней классами и файлами и которая сообщается с другими компонентами. Спецификация J2EE определяет следующие компоненты J2EE:

  • Прикладные клиенты и аплеты являются компонентами, выполняемыми на клиенте

  • Компоненты технологий сервлетов Java Servlet и JavaServer Pages (JSP ) являются Web-компонентами, которые выполняются на сервере.

  • Компоненты Enterprise JavaBeans (EJB ) (корпоративные бины) являются бизнес-компонентами, которые выполняются на сервере.

Компоненты J2EE пишутся на языке программирования Java и компилируются так же, как и любые программы на этом языке. Разница между компонентами J2EE и "стандартными" классами Java состоит в том, что компоненты J2EE собираются в приложение J2EE, проверяются на формат и на соответствие спецификациям J2EE, и внедряются в продукт, где они выполняются и управляются сервером J2EE.

22. Сервлеты.

Сервлет является Java-интерфейсом, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.

Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.

Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.

Жизненный цикл сервлета состоит из следующих шагов:

  1. В случае отсутствия сервлета в контейнере.

    1. Класс сервлета загружается контейнером.

    2. Контейнер создает экземпляр класса сервлета.

    3. Контейнер вызывает метод init(). Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод init() вызывается только однажды.

  2. Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод service() для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса.

  3. В случае если контейнеру необходимо удалить сервлет, он вызывает метод destroy(), который снимает сервлет из эксплуатации. Подобно методу init(), этот метод тоже вызывается единожды за весь цикл сервлета.

Пример

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class NewServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// Параметр

String parameter = request.getParameter("parameter");

// Старт HTTP сессии

HttpSession session = request.getSession(true);

session.setAttribute("parameter", parameter);

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {

out.println("<html>");

out.println("<head>");

out.println("<title>Заголовок</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Пример сервлета"+parameter+"</h1>");

out.println("</body>");

out.println("</html>");

} finally {

out.close();

}

}

@Override

public String getServletInfo() {

return "Пример сервлета";

}

}

23. JSP.

JSP (JavaServer Pages) — технология, позволяющая веб-разработчикам легко создавать содержимое, которое имеет как статические, так и динамические компоненты. По сути, страница JSP является текстовым документом, который содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML, или XML, и JSP элементы, которые конструируют динамическое содержимое. Кроме этого могут использоваться библиотеки JSP тегов, а также EL (Expression Language), для внедрения Java-кода в статичное содержимое JSP-страниц.

JSP — одна из высокопроизводительных технологий, так как весь код страницы транслируется в java-код сервлета с помощью компилятора JSP страниц Jasper, и затем компилируется в байт-код виртуальной машины java (JVM). Контейнеры сервлетов, способные исполнять JSP страницы, написаны на языке Java, который может работать на различных платформах. JSP страницы загружаются на сервере и управляются из структуры специального Java server packet, который называется Java EE Web Application, в большинстве своём упакованные в файловые архивы .war и .ear.

Выгода, которую дает технология JSP в сравнении с другими веб-технологиями заключается в том, что JSP является платформонезависимой, переносимой и легко расширяемой технологией для разработки веб-приложений.

JavaServer Pages (JSP) позволяют отделить динамическую часть страниц от статического HTML. Процедура довольно проста, создаёте обычный код HTML (статический), а динамическую часть заключаете в специальные теги "<% %>".

Имя вашего хоста: <%= request.getRemoteHost() %>

JSP страницы имеют расширение .jsp и размещаются там же, где и обычные Web страницы. Структура таких страниц может состоять из пяти конструкций: HTML, комментарии, скриптовые элементы, директивы и действия. JSP страница при компиляции преобразуется в обычный сервлет со статическим содержимым, которое направляется в поток вывода, связанный с методом service. Поэтому при первом запросе этот процесс может вызвать некую задержку, но в большинстве своём незаметную первому пользователю. Комментарии в документе или программе служат к объяснению содержимого. Они не являются причиной замедления программы, так как транслятор и исполнитель их игнорируют. Скриптовые элементы позволяют вам указать код на языке Java, который впоследствии станет частью конечного сервлета, директивы дадут вам возможность управлять всей структурой сервлета, а действия служат для задания существующих используемых компонентов, а также для контроля над поведением движка JSP. Для упрощения работы со скриптами имеются заранее определённые переменные, такие как request, response, pageContext, session, out, application, config, page, exception. Пример JSP страницы с использованием всех составляющих JSP конструкции:

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