
- •Типи веб - додатків
- •Розділ 20 Розробка інтернет-додатків
- •Рядок переданих параметрів
- •Методи передачі та отримання рядки параметрів
- •Зчитування рядка параметрів методом get
- •Зчитування рядка параметрів методом post
- •Отримання додаткової інформації
- •Компонент tWebModule
- •Параметр Request
- •Параметр Response
- •Події компонента tWebModule
- •Завдання дій, оброблювальних запити клієнта
Параметр Response
Параметр Response представляє екземпляр класу TWebResponse - базового класу, призначеного для формування відповіді на HTTP-запит. Наведемо його основні властивості.
□ property ContentType: String - тип даних, що містяться в тілі відповіді.
□ property ContentLength: Integer - число символів, що містяться в тілі відповіді.
□ property Content: String - вміст тіла відповіді.
□ property ContentStream: TStream - визначає об'єкт Stream, який буде переданий клієнту. Дана властивість зазвичай використовується для передачі клієнтові бінарних файлів. Якщо властивість ContentStream встановлено, воно замінює властивість Content.
Події компонента tWebModule
Для обробки запитів і зміни вмісту відповіді можна використовувати дії, що задаються у властивості Actions, а також події самого компонента TWebModule. У цьому компоненті передбачена можливість обробки чотирьох подій: AfterDispatch, BeforeDispatch, OnCreate і OnDestroy.Розглянемо кожне з цих подій більш докладно.
□ property AfterDispatch: THTTPMethodEvent - викликається після того, як НТТР-відповідь була успішно сформований (у обробнику OnActions-якої дії із списку Actions), але ще не переданий клієнту. Оброблювач цієї події можна використовувати, наприклад, для перевірки сформованого НТТР-відповіді.
□ property BeforeDispatch: THTTPMethodEvent - викликається перед тим, як буде встановлено відповідність HTTP-запиту з яким дією. Може використовуватися для попередньої обробки НТТР-запиту.
□ property OnCreate: TNotifyEvent - викликається при створенні екземпляра TWebModule. Дана подія зазвичай застосовується для ініціалізації змінних і об'єктів, що містяться в додатку. Наприклад, якщо модуль містить базу даних, в обробнику цієї події можна виконати підключення бази даних.□ property OnDestroy: TNotifyEvent - викликається перед знищенням примірника TWebModule. Зазвичай використовується для звільнення об'єктів, створених динамічно. При роботі з базами даних в обробнику цієї події можна, наприклад, розривати з'єднання з базою даних.
Приклад створення CGI-додатки
Розглянемо приклад створення простого CGI-додатки з використанням коштів, що надаються компонентом TWebModule. Наше додаток буде виконувати процедуру ідентифікації користувача, тобто аналізувати запроваджені ним ім'я і пароль.
Розробку веб-додатки, створюваного на основі компонентаTWebModule, можна розділити на три етапи.
1. Вибір типу створюваного додатка (CGI, WinCGI або ISAPI).
2. Завдання дій, що виконують обробку запитів клієнта. Обробка запитів не залежить від типу веб-додатки.
3. Компіляція і тестування створеного додатка.
Вибір типу створюваного додатка
Для створення нового CGI-програми, що використовує компонент TWebModule, необхідно виконати описану нижче процедуру.
1. Виберіть у головному меню Delphi IDE команду File ► New і на вкладці New від-крившегося вікна діалогу New Items двічі клацніть на значку Web Server Application.
2. У вікні діалогу New Web Server Application за допомогою перемикача виберіть потрібний тип додатка. Так як ми створюємо CGI-додаток, встановіть перемикач CGI Stand-alone executable. Клац ¬ ните на кнопці ОК. У результаті буде створено нове CGI-додаток, що містить компонент TWebModule.
Компонент TWebModule об'єднує в собі можливості модуля даних (TDataMo-dule) і диспетчера HTTP-запитів. На форму TWebModule можна поміщати компоненти доступу до даних і спеціальні компоненти для формування відповіді сервера на HTTP-запит клієнта.