
Servlet&CGI.ppt
- Количество слайдов: 20
Разработка Web-приложений. Сервлеты и JSP. Проф. Куссуль Н. М. , Доц. Шелестов А. Ю. 1
Содержание Один из первых Web-серверов – NCSA HTTPD – поддерживал технологию CGI версии 1. Технология CGI стала стандартом для Web-приложений начиная с 1994 г. n n Поддерживается в UNIX-среде В среде Windows NT 3. 5 x/… 2
CGI-программа – это программа на Web-сервере, выполняемая в ответ на запрос браузера. CGI-программа должна: n n Принимать данные от браузера Возвращать информацию для браузера 3
CGI-программа не взаимодействует с пользователем (нет графического интерфейса) n. CGI определяет стандарт интерфейса (набор правил) взаимодействия между программой и Webсервером n. CGI-программа должна запускаться из командной строки простым вводом ее имени n. CGI-программа должна генерировать правильный заголовок Content-type n Java-приложения не годятся, поскольку требуют виртуальной машины 4
Сервлеты - это альтернатива CGIпрограммирования. Сервлеты выполняются на Web-сервере и играют роль серверов промежуточного уровня. 5
В процессе работы сервлеты выполняют следующие действия: n n n Чтение данных, передаваемых пользователем. Извлечение прочей (служебной) информации из HTTP-запроса. Генерация результатов (обращение к базе данных (JDBC), вызов методов RMI, CORBA). n Форматирование результатов обработки. Установка параметров HTTP-ответа. n Передача документа клиенту (браузеру). n 6
Преимущества Эффективность (1 копия сервлета используется для обработки N запросов и N потоков). Переносимость property). (generic Java Богатые возможности (простота взаимодействия с Web-сервером). Перед разработкой нужно проверить, поддерживаются ли сервлеты выбранным Web-сервером (Java Servlet v. 2. 1 и 2. 2 JSP 1. 0 или 1. 1). http: //java. sun. com/products/servlet/industry. html 7
Работу сервлетов обеспечивают следующие программные продукты: Apache Tomcate. Allaire JRun (для Netscape Enter. Price, Fast. Track, IIS, Microsoft Personal Web Server, Apache, O’Reilly Website). Подходит для разработки программ Servlet Exec. Встраивается в Webсерверы. (Для Solaris, Windows, Mac. OS, HP -UX и Linux). 8
Работу сервлетов обеспечивают следующие программные продукты: Lite Web. Server - свободно распространяемый Web-сервер. Caucho Resin - для разработки и некоммерческого использования. 9
Обращение к сервлетам Большинство серверов регистрировать имена Форма обращения: позволяют сервлетов. http: //узел/путь/имя Универсальный способ обращения http: //узел/servlet/имя_сервлета 10
По умолчанию используются два варианта URL http: //узел/servlet/имя_пакета. имя_с ервлета http: //узел/путь_к _Webприложению/servlet/имя_пакета. имя _сервлета (Если Web-приложение было зарегистрировано на Web-сервере. ) 11
Базовая структура сервлета import java. io. *; // класс Print. Writer import javax. servlet. *; // Http. Servlet import javax. servlet. http. *; // Http. Servlet. Request // Http. Servlet. Response public class Servlet. Template extends Http. Servlet { public void do. Get (Http. Servlet. Request request, Http. Servlet. Request response) throws Servlet. Exception, IOException { Print. Writer out=response. get. Writer(); out. println(“Hello World”); } } 12
Параметр request используется для чтения полей заголовка HTTP-запроса, и данных пользователя из формы. response используется для установки кода состояния HTTP-ответа и полей заголовка. Объект out используется для передачи данных браузеру. Класс, который реализует сервлет, должен быть подклассом класса Http. Servlet. В нем переопределяются методы do. Get и do. Post. Запрос GET Запрос POST 13
w При вызове этих методов передается два параметра: экземпляры Http. Servlet. Response и Http. Servlet. Request. С помощью Http. Servlet. Response можно организовать передачу данных клиенту, т. е. создать объект Print. Writer. Генерация выходных данных осуществляется посредством методов print()/println(). w Метод public void init() throws Servlet. Exception {} вызывается при создании сервлета для чтения параметров сервера. 14
w Каждый раз, когда сервер принимает запрос, он порождает новый поток, в котором вызывается метод service. Этот метод проверяет типы запроса и вызывает соответствующий метод (do. Get, do. Post, do. Put, do. Delete). w Можно переопределить сам метод service(). w Метод destroy() используется для завершения работы сервлета. 15
Страницы JSP позволяет объединить статический HTML с кодом, который динамически генерируется сервлетами Дескрипторы: <%. . %> Пример http: //host/order. jsp? title=Web+Programming вывод строки Thanks for ordering Web Programming можно осуществить с помощью следующего кода: Thanks for ordering <I><% request. get. Parameter(“title”) %></I> 16
Предопределенные переменные JSP: request – объект Http. Servlet. Request response – объект Http. Servlet. Response session – объект Http. Session out – объект Print. Writer JSP преобразуются в сервлеты! 17
Current time: <%= new java. util. Date()%> В результате в теле метода _jsp. Service (вызываемого из метода service) будут помещены строки: out. print(“Current time: ”); out. println(new java. util. Date()); 18
Элементы сценариев JSP Выражения <%= выражение %> Вычисляются и включаются в состав выходных данных сервлета Скриптлеты <% код %> Позволяют выполнять более сложные действия Пример: <% String query. Data=request. get. Query. String(); out. println(“…”+query. Data); %> 19
Декларации <%! код %> Позволяют включать методы и поля в класс сервлета (за пределами метода _jsp. Service, который вызывается из метода service) <%! private int access. Count=0; % > 20
Servlet&CGI.ppt