пособии вводится понятие распределенных клиент-серверных приложений и рассматриваются способы их реализация с применением программирования сокетов, RMI, сервлетов и JSP на основе применения JavaSE (Java Standard Edition) и JavaEE (Java Enterprise Edition). Подробное рассмотрение технологий сопровождается практическими примерами по реализации клиентских и серверных компонент распределенной вычислительной архитектуры. Для демонстрации применения распределенных технологий используется популярная открытая среда разработки IDE Eclipse и сервер приложений GlassFish. Министерство образования и науки Российской Федерации САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ Оглавление Введение Введение в программирование сетевых сокетов Основы сетевого взаимодействия Архитектура клиент/сервер Протоколы IP адрес и порт Сокеты Классы Java для сетевого программирования Классы пакета java.net Класс InetAddress Создание приложения с использованием UDP протокола Классы DatagramPacket и DatagramSocket Создание сервера UDP Создание клиента UDP Пример разработки приложений UDP в IDE Eclipse Вопросы для самопроверки Создание сетевых приложений с использованием TCP Идентификация методов классов Socket и ServerSocket Создание сервера TCP/IP 1. Создание Server 2. Прослушивание запросов клиентов 3. Запуск сервера 4. Создание потокового соединения Создание клиента TCP/IP 1. Создание сокета клиента 2. Чтение и запись в сокет 3. Закрытие соединения Разработка потокового взаимодействия в IDE Eclipse Вопросы для самопроверки Введение в RMI Введение в распределенные приложения Вызов удаленного метода Компоненты приложения RMI Архитектура RMI Уровень удаленной ссылки Транспортный уровень Пакеты RMI Пакет java.rmi Пакет java.rmi.registry Пакет java.rmi.server Пакет java.rmi.dgc Распределенная сборка мусора Этапы создания распределенного приложения Создание удаленного интерфейса Реализация удаленного интерфейса Создание сервера RMI Политика безопасности Создание клиента RMI Выполнение приложения RMI 1. Генерация стаб и скелетон 2. Запуск регистра RMI 3. Выполнение сервера RMI 4. Выполнение клиента RMI Разработка RMI-приложения в среде IDE Eclipse Вопросы для самопроверки Технологии и архитектура JavaEE Введение в сервлеты Java Понятие сервлета Технология Java Servlet Работа сервлетов Иерархия классов сервлетов и методы жизненного цикла Иерархия класса Servlet Интерфейс javax.servlet.Servlet Интерфейс javax.servlet.ServletConfig Методы жизненного цикла сервлета Метод init() Метод service() Метод doGet() Метод doPost() Метод doHead() Метод doPut() Метод destroy() Создание сервлета Программирование сервлета Чтение и обработка клиентского запроса Отправка ответа клиенту Компиляция и упаковка сервлета Пример разработки сервлета Servlet API и события жизненного цикла Servlet API Интерфейс ServletRequest Интерфейс ServletResponse Интерфейс ServletContext Параметры инициализации контекста Пакет javax.servlet.http Интерфейс HttpServletRequest Интерфейс HttpServletResponse Установка заголовков ответа В результате выполнения этого сервлета полученные данные открываются в приложении Microsoft Excel, как показано на Рис. 50. Рис. 50 Страница, открытая в MS Excel Перенаправление запросов клиентов } Интерфейс HttpSession API жизненного цикла сервлета Типы событий События запроса к сервлету События контекста сервлета События сессии HTTP Обработка событий жизненного цикла сервлета Слушатели запросов к сервлету Интерфейс ServletRequestListener Интерфейс ServletRequestAttributeListener Слушатели контекста сервлета Интерфейс javax.servlet.ServletContextListener Интерфейс javax.servlet.ServletContextAttributeListener Слушатели сеанса HTTP Интерфейс javax.servlet.http.HttpSessionListener Интерфейс javax.servlet.http.HttpSessionAttributeListener Интерфейс javax.servlet.http.HttpSessionActivationListener Описание элементов дескриптора развертывания Управление сессиями servlet Приемы управления сессией Скрытое поле формы Перезапись URL Использование Cookies Servlet Session API Постановка задачи Решение Обработка ошибок и исключений в сервлетах Исключения в сервлетах Класс javax.servlet.ServletException Класс javax.servlet.UnavailableException Обработка ошибок Сообщения об ошибках и коды состояния Метод sendError() Метод setStatus() Настраиваем страницы ошибок Запись исключений и ошибок в файл серверного журнала Взаимодействие сервлетов Диспетчер запросов Включение содержимого другого сервлета Передача запроса другим сервлетам Использование объекта Request Вопросы для самопроверки Введение в технологию JSP Основные возможности JSP Использование регулярных классов в JSP Жизненный цикл JSP Структура JSP-страницы Директивы JSP Директива page Директива include Директива taglib Кодирование элементов сценария JSP Неявные объекты JSP Действия JSP Действие Программирование JSP Классы JSP API Класс ErrorData Класс JspWriter Класс PageContext Этапы создания приложения JSP Постановка задачи Решение Понятие и работа с JavaBeans Введение в JSP Expression Language (EL) Введение в JSTL Расширенный пример с использованием EL и JSTL Вопросы для самопроверки Заключение ЛИТЕРАТУРА КАФЕДРА СЕРВИСОВ И УСЛУГ В ИНФОКОММУНИКАЦИОННЫХ СИСТЕМАХ