Разработка Web–приложений с применением Java Servlet-технологии (48513)

Посмотреть архив целиком

Факультет «Информатика и системы управления»










Методические указания к лабораторной работе


по курсу «Распределенные системы обработки информации»



"Разработка Web‑приложений с применением Java Servlet Технологии"














Москва 2004 г.


Цель работы


Получить знания о Java Servlet технологии, сервере Jakarta Tomcat, его настройке для работы с сервлетами.


Задание для домашней подготовки


Ознакомиться с материалом, предоставленным в приложении к данным методическим указаниям. Ознакомиться с текстом задания к лабораторной работе. Написать Web – приложение.


Задания к лабораторной работе


Написать пользовательский интерфейс online форума.


Содержание отчета


Отчет должен содержать:

  1. Постановку задачи, решаемой отлаженных программ.

  2. Руководство пользователя отлаженных программ, содержащее описание интерфейсов всех функций программ.

  3. Руководство системного программиста в объеме, необходимом для последующего сопровождения (модификации) отлаженных программ другим программистом (само документируемый листинг программы, необходимые пояснения алгоритма и его программной реализации).


Контрольные вопросы


  1. Преимущества Java Servlet?

  2. Из каких этапов состоит жизненный цикл сервлета?

  3. Способы вызова сервлетов с браузера и страницы?

  4. Способы передачи параметров сервлету и их обработка?

  5. Как происходит запись и чтение атрибутов сессии?


Литература


Java in a Nutshell Дэвид Флэнэген Киев 1998

http://faq.realcoding.net/index.php

http://java.sun.com/j2ee/learning/tutorial/index.html

http://egor.spb.ru/doc/db/mysql/14.html#_ftnref1

http://www.coreservlets.com/Apache-Tomcat-Tutorial/

http://gcc.gnu.org/ml/java-patches/2000‑q4/index.html#00245

http://www-ucs.usc.edu/~toms/jakartafaq.html

http://jakarta.apache.org/faq




Теоретическая часть


Сервлеты Java

Сервлеты расширяют функциональность Web‑серверов и являются мощным средством программирования. Сервлеты – это модули, расширяющие возможности серверов типа запрос-ответ, таких как Java‑совместимые web‑сервера. Сервлеты для серверов то же самое, что и апплеты для браузеров, но в отличие от апплетов, у сервлетов нет графического интерфейса пользователя. Сервлеты могут быть встроены в различные серверы, так как API сервлетов, который используется для их написания, не предполагает никакого знания ни об окружении сервера, ни о его протоколе. Сервлеты наиболее широко используются с HTTP‑серверами; многие web‑сервера поддерживают API сервлетов. Они обеспечивают такой способ генерирования динамических документов, который позволяет облегчить их написание и ускорить выполнение. Сервлеты также решают проблему программирования на стороне сервера с платформо-зависимыми API, которые разрабатываются с использованием Java Servlet API, стандартного расширения Java. Характерной особенностью сервлетов является то, что они не требуют создания новых процессов при каждом новом запросе. Множество сервлетов выполняются параллельно в рамках одного процесса на сервере.





Java Servlet Development Kit (JSDK)

Набор инструментов разработки Java – сервлетов(JSDK) содержит библиотеки классов, которые нужны для создания сервлетов. Он включает также утилиту, известную как servletrunner, которая дает возможность проверить некоторые из создаваемых сервлетов. Начиная с JSDK Version 2 пакет Jsdk2.0 встроен в JDK.

Servlet API.

Коды, требующиеся для построения сервлетов, содержат два пакета: javax.servlet и javax.servlet.http. Вместе они представляют Servlet API.

Интерфейс сервлета

Центральной абстракцией в API сервлета является Servlet API‑интерфейс. Все сервлеты реализуют этот интерфейс либо прямо, либо, чаще, путем расширения класса, который реализует этот интерфейс, например класса HttpServlet API. Servlet‑интерфейс объявляет, но не реализует методы, управляющие сервлетом и его связью с клиентами. Разработчики сервлетов обеспечивают реализацию отдельных (или всех) методов в процессе разработки сервлета.

Жизненный цикл сервлета

Все сервлеты имеют одинаковый жизненный цикл:

  • Сервер загружает и инициализирует сервлет

  • Сервлет обрабатывает ноль или более запросов клиентов

  • Сервер выгружает сервлет





Вызов сервлетов с браузеров

Для вызова сервлета с браузера достаточно набрать запрос – URL сервлета. URL сервлета имеет следующую форму:

http://machine-name:port/servlet/servlet-name

где servlet-name относится к имени, данному этому сервлету. Например

http://localhost:8080/servlet/bookstore

URL сервлетов может содержать запросы, такие как HTTP GET‑запросы. Например

http://localhost:8080/servlet/bookdetails? bookId=203

Вызов сервлетов с HTML‑страницы

Для вызова сервлета с HTML‑страницы достаточно использовать URL сервлета с соответствующей HTML‑меткой. Метки, поддерживающие URL, включают те, с которых начинаются якоря и формы, а также meta‑метки. Например

Calls the servlet

Также для вызова сервлета можно использовать атрибут action в теге form в HTML‑странице, указав URL сервлета. Например

<form action= «http://localhost:8080/servlet/receipt» method= «post»>

Для вызова сервлета также можно использовать тег meta в HTML‑странице, указав URL сервлета. Например


Пакет javax.servlet


Пакет javax.servlet содержит ряд интерфейсов и классов, устанавливающих обрамление, в котором работают сервлеты.

Интерфейс

Описание

Servlet

Объявляет методы цикла жизни для сервлета.

ServletConfig

Позволяет сервлетам получать параметры инициализации.

ServletContext

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

ServletRequest

Используется для чтения данных из запроса клиента.

ServletResponse

Используется для записи данных в ответ клиенту.

SingleThreadModel

Указывает, что сервлет защищен от многопоточности.


Класс

Описание

GenericServlet

Реализует интерфейс Servlet и ServletConfig

ServletInputStream

Обеспечивает входной поток для чтения запросов от клиента.

ServletOutputStream

Обеспечивает выходной поток для записи ответов клиенту.

ServletException

Указывает, что произошла ошибка сервлета.

UnavailableException

Указывает, что сервлет постоянно или временно недоступен.


Инициализация сервлета

Когда сервер загружает сервлет, он запускает init‑метод сервлета.

public void init (ServletConfig config) throws ServletException

Инициализация завершается до начала обработки запрос клиента и до удаления сервлета. Сервер вызывает метод init только один раз при загрузке сервлета. В дальнейшем, метод init больше не вызывается, если только сервер не перезагружает сервлет. Сервер не может перезагрузить сервлет до тех пор, пока он не удалит сервлет, вызвав метода destroy.

Удаление сервлета

Сервлеты работают до тех пор, пока сервер не удалит их. Когда сервер удаляет сервлет, он запускает метод destroy сервлета.

public void destroy()

Этот метод запускается один раз; сервер не будет запускать сервлет снова до тех пор, пока сервер не перезагрузит и переинициализирует сервлет.

Взаимодействие с клиентами

После инициализации сервлет способен обрабатывать запросы клиентов. Cервлет работает с запросами клиентов с помощью метода service.

public void service (ServletRequest req, ServletResponse res)

throws ServletException, IOException

Метод service поддерживает стандартные HTTP‑запросы клиентов, отсылая каждый полученный запрос тому методу, который создан для работы с запросом данного вида.

Когда сервлет принимает вызов клиента, он получает два объекта:

  • ServletRequest, который инкапсулирует связь клиента с сервером.

  • ServletResponse, инкапсулирующий обратную связь сервера с клиентом.

ServletRequest и ServletResponse являются интерфейсами, определенными пакетом javax.servlet.


ServletRequest интерфейс


ServletRequest интерфейс позволяет сервлету получить доступ:

  • к следующей информации: имена параметров, введенных клиентом; протокол (схема), используемый клиентом; имя удаленного хоста, пославшего запрос; имя сервера, получившего этот запрос.

  • к входному потоку ServletInputStream для получения данных от клиентов, использующих такие входные протоколы, как HTTP POST- и PUT‑методы.

Интерфейсы, расширяющие ServletRequest интерфейс, позволяют сервлету получить и другие данные конкретного протокола. Например, HttpServletRequest интерфейс содержит методы, позволяющие получить доступ к информации HTTP‑заголовка.


Случайные файлы

Файл
68403.doc
29483.rtf
169847.rtf
referat_koga.doc
kursovik.doc




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.