
- •Типи веб - додатків
- •Розділ 20 Розробка інтернет-додатків
- •Рядок переданих параметрів
- •Методи передачі та отримання рядки параметрів
- •Зчитування рядка параметрів методом get
- •Зчитування рядка параметрів методом post
- •Отримання додаткової інформації
- •Компонент tWebModule
- •Параметр Request
- •Параметр Response
- •Події компонента tWebModule
- •Завдання дій, оброблювальних запити клієнта
Компонент tWebModule
Компонент TWebModule є основою будь-яких веб-додатків, що розробляються в Delphi, будь то CGI-сценарій або IS API-розширення. За допомогою цього компонента додаток виконує інтерпретацію НТТР-запитів.
ПРИМІТКА
Компонент TwebModulel доступний в Delphi версії 7.Основна властивість компонента TWebModule - властивість Action, яке містить список дій, що є обробниками запитів, що надходять від клієнта. Кожен елемент цього списку має тип TWebActionltem і характеризується соб-чими властивостями.
□ Pathlnfo: String - вказує, при обробці якого рядка параметрів (розта-женной в запиті після імені сценарію, але до даних запиту) буде викликатися дана дія.
□ MethodType: TMethodType - вказує метод, використовуваний клієнтом для передачі запиту, на який дана дія може відповісти. Може приймати значення: mtGet, mtPost, mtHead, mtPut і mtAny. В залежності від значення свій-ства MethodType дію буде обробляти запити, передані методами 'GET, POST, HEAD, PUT чи відповідати на запит будь-якого виду.
□ Default: Boolean - використовується для завдання обробника за замовчуванням. Якщо дана властивість встановлено рівним true, то дія буде обробляти запити з рядками параметрів, для яких не задані обробники.
□ Enabled: Boolean - вказує, може (true) чи ні (false) дана дія обра-ботати HTTP-запит з параметрами Pathlnfo і MethodType, відповідними властивостям даного дії.
□ Producer: TCustomContentProducer - покажчик на спеціальний компонент, використовуваний для формування відповіді веб-додатки. Такі компоненти розглядаються далі.
Кожен елемент списку Actions може обробляти всього одна подія - OnActions. Оброблювач цієї події і виконує формування відповіді сервера на прийнятий запит клієнта:
property OnAction: THTTPMethodEvent:
type THTTPMethodEvent = procedure (Sender: TObject;
Request: TWebRequest: Response: TWebResponse:
var Handled: Boolean) of object;
За допомогою параметра Request передається запит, отриманий від клієнта. Параметр Response використовується для формування відповіді. Параметр Handle застосовується в тому випадку, коли потрібно вказати, що запит не оброблений. Для цього даному параметру слід присвоїти значення false.
Зважаючи великій значимості параметрів Request і Response розглянемо їх більш докладно.
Параметр Request
Параметр Request є екземпляром класу TWebRequest, - базового класу для передачі інформації веб-додаткам. Це досить складний клас, володіючий великою кількістю властивостей і методів. Ми розглянемо лише кілька його основних властивостей.
□ property Content: String - рядок параметрів, передана за допомогою методу POST. Фактично це рядок, що містить тіло HTTP-запиту, отриманого від клієнта.
□ property ContentFields: TStrings - «розібрана» рядок параметрів, передана за допомогою методу POST. Кожен елемент колекції ContentFields представляє собою рядок, відповідний одному елементу управління, розташованому на формі, і являє собою ім'я керуючого елемента та його значення, розділені знаком рівності (ідентифікатор = значення).
□ property Query: String - рядок параметрів, передана клієнтом за допомогою методу GET.
□ property Query Fields: TStrings - «розібрана» рядок параметрів, передана методом GET. Формат рядків колекції QueryFields повністю аналогічний фор-мату колекції ContentFields.
□ property RemoteAddr: String - IP-адреса клієнта, що послав запит.
□ property RemoteHost: String - доменне ім'я клієнта, що послав запит.□ property Method: String - метод, використовуваний для передачі даних серверу.Таким чином, за допомогою об'єкта Request можна легко отримати всі дані, вве-денние користувачем на формі, а також визначити ряд параметрів клієнта. Причому для цього немає необхідності звертатися до змінних оточення і «вручну» декодувати і інтерпретувати рядок параметрів, отриману від клієнта.