Створення Web-додатків в середовищі Delphi

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Епоха web-дизайну, коли найважливішим вважалося можливість запхнути на сторінку як можна більше графіки і вразити користувача широтою фантазії дизайнера, канула в лету. У моді - інформаційний дизайн і всілякі зручності для користувача. Поганим тоном вважається вже одне тільки те, що на сайті немає форуму або гостьової книги, і найжахливіше - о, боже - ви до цих пір верстаєте кожну сторінку вручну, замість того, що б доручити сее нудне і утомительно заняття скрипту.

Час першопрохідців HTML незабаром закінчиться і зовсім, і їх місце займуть професіонали-програмісти. Саме програмісти, бо вже більшою мірою від їх уміння створити зручний у використання сайт залежить його успіх. Крім іншого, тепер сайти створюють зовсім вже як програмні продукти: тим хто зайнятий наповненням змістом, вже може не побоюватися заплутатися в html, java, cgi та інших іпостасях інтернет-технологій - адміністрування сайту стає таким же звичним і зручним, як робота з текстовими процесорами . Поки, правда, відчувається явний недолік закінчених продуктів, на плечі яких можна було б покласти всі функції з підтримки сайту в актуальному стані, залишивши собі лише питання щодо наповнення його змістом.

Поки ж тяжкий тягар по створенню даних систем, на основі яких буде функціонувати сайт, лягає на плечі програмістів, тільки ось-ось встигли остовпіє можливостями мови Perl або Java. І багато хто з них, сказати без перебільшення, вийшли, наче з гоголівської "Шинелі", з Delphi. Дійсно, дана середовище розробника, що надає зручний інтерфейс для візуального програмування і широкі можливості Object Pascal, настільки мила серцю російських програмістів.

Але, схоже, що часи змінюються, і Delphi з середовища створення звичайних настільних додатків, може згодитися і в іншому плані: для написання прикладних web-програм. І дійсно, що може бути краще: вже знайома середовище розробки, вздовж і впоперек вивчений мову, та й досить широке коло фахівців із програмування в Delphi - це чи не плюси створення web-додатків на Delphi. Є звичайно й мінуси: створені програми навряд чи зможуть задовольнити тих, хто вважає, що кращий web-сервер, це сервер не від Microsoft. Але що поробиш - версія Delphi під Unix відкладена поки до кращих часів. Зате поміркуйте самі: перенесення програм у майбутньому світлому майбутньому можна буде зробити з малою кров'ю.

Але відкладемо поки теорію в бік, і звернемося до практики. Отже, створення web-додатки в середовищі Delphi, що називається крок за кроком.

Приклад з підручника

На відміну від інших аспектів створення додатків в Delphi, про створення додатків для web написано мало. Так жахливо мало, що з книги в книгу, з підручника в підручник подорожує один і той же приклад. Не будемо оригінальничати і ми - чим простіше, тим краще.

Взагалі, найпростіше web-додаток на Delphi мало чим відрізняється, а точніше нічим не відрізняється від створення програми для старої доброї DOS. Це - простий консольний додаток, що запускається на стороні сервера і взаємодіють з користувачем (у разі необхідності) через броузер.

Створіть у Delphi новий проект - ту саму вже давно забуту всіма Console Application. Ви отримаєте знайомий зі шкільної лави, текст звичайної паскалевской програми:

program primer;

{$ APPTYPE CONSOLE}

uses SysUtils;

begin

/ / Insert user code here

end.

Далі ще простіше. Організуємо висновок коду HTML за допомогою команди writeln.

writeln ('CONTENT-TYPE: TEXT / HTML'); writeln; writeln (''); writeln (''); writeln (''); writeln ('Delphi the best facility for making web-publications!'); writeln (''); writeln (''); writeln ('Hello, world!'); writeln (''); writeln ('');

Зверніть увагу на рядок CONTENT-TYPE: TEXT / HTML, яка визначає опис подальшого вмісту, а саме коду HTML. Після CONTENT-TYPE: TEXT / HTML, необхідно вивести порожню рядок інакше броузер може видати повідомлення про помилку.

Тепер, коли програма закінчено, залишилося його скомпілювати і перевірити. Для перевірки працездатності програми вам знадобитися веб-сервер. Можна особливо не напружуватися, підійде будь-який, навіть стандартний домашній веб-сервер від Microsoft. Додаток треба буде розмістити в папці публікацій сервера (звичайно це - C: Inetpub wwwroot) і запустити сам сервер. Тепер, якщо ви перейдете за адресою http://localhost/primer.exe в броузері, ви повинні побачити результат дії даної програми - рядок Hello, world! От і все, найпростіше web-додаток на Delphi готове.

Передача параметрів

Насправді нам би навряд чи знадобилося Delphi, для створення подібних програм. Звичайно, можна генерувати сторінки виходячи з різних умов, але питання в тому, як дані умови передати програмі. І тут виявляється не все так складно, достатньо згадати передачу параметрів додатком за допомогою командного рядка і вступити відповідно. Хоча це, зрозуміло, хитрість. Це для додатки Delphi ми оперуємо командним рядком, для користувача ж це адресна рядок у броузері, тобто url.

Спробуємо на прикладі. Необхідно створити додаток, що видає різну інформацію (наприклад, час, дату або те й інше разом) залежно від параметрів, зазначених в адресному рядку броузера. Як відомо, за дані в параметрах відповідають такі функції, як ParamCount і ParamStr. Їх-то ми і будемо використовувати.

program CgiDate;

{$ APPTYPE CONSOLE}

uses SysUtils;

begin

writeln ('CONTENT-TYPE: TEXT / HTML');

writeln;

writeln ('');

writeln ('Cgidate');

writeln ('>');

writeln ('Приклад передачі параметрів');

writeln ('');

writeln ('

if ParamCount> 0 then

begin

if ParamStr (1) = 'date' then

writeln (FormatDateTime ('"Сегодня" dddd, mmmm d, yyyy', Now))

else if ParamStr (1) = 'time' then

writeln (FormatDateTime ('"Час" hh: mm: ss AM / PM', Now))

else if ParamStr (1) = 'both' then

writeln (FormatDateTime ('"Сегодня" dddd, mmmm d, yyyy,'

+ '"І час" hh: mm: ss AM / PM', Now))

else

writeln ('Помилка! Невірний параметр:' + ParamStr (1) + '.')

end

else

writeln ('Параметр відсутня.');

writeln ('');

end.

Чи не правда просто? Тепер, якщо в адресному рядку броузера ви наберете, наприклад http://localhost/cgidate/exe?time, буде згенерована сторінка, що відображає поточний час, http://localhost/cgidate/exe?date - відповідно дата, а при передачі параметра both - поточна дата і час. У випадку якщо жоден з параметрів переданий не був або він був помилковий - виникне повідомлення про це.

Дані адреси і параметри можна безпосередньо вказати в коді HTML і генерувати необхідні зміни на сторінці або інші сторінки переходячи за відповідними посиланнями.

Слід звернути увагу на те, як передавати дані через url. Знак питання відділяє параметр від адреси файлу, за допомогою знака рівності web-додатку передається значення даного параметра. Так як в адресному рядку не можна використовувати пробіл, він замінюється на шістнадцятковий код в таблиці ASCII, тобто% 20.

Але насправді, якщо якісь дані передаються від користувача web-додатком, то зазвичай для цього використовують форми, а не url (хоча одне іншому не заважає). Спробуємо і ми створити додаток, яке б отримувало дані від користувача, занесені їм у форму.

Для початку, звичайно, потрібно створити сам код HTML в якому б була присутня форма з полями введення, кнопкою відправлення та іншими необхідними атрибутами. При цьому form action повинен містити адресу програми, яка буде отримувати дані. Значення method може бути так само як GET, так і POST. Насправді GET - це і є передача параметрів через url, додаючи їх до адресному рядку, так як POST передає їх застосуванню за допомогою стандартного потоку вводу. Який з них краще і зручніше - вирішувати вам, але частіше за все метод GET використовується саме для генерації сторінок (достатньо поглянути на url який виникає при роботі на пошукових серверах), тоді як другий для - передачі даних, відображати які в адресному рядку було б вельми накладно.

Потім необхідно створити додаток, яке б адекватно змогло сприйняти всі ці дані з боку користувача. У разі якщо дані передавалися за допомогою методу GET проблем не буде - можна діяти як у попередньому прикладі. Якщо ж додаток отримує дані від користувача за допомогою POST, все трохи інакше.

Необхідно буде зчитувати дані з змінної оточення, а для цього ми, природно, повинні знати дані змінні.

Гюльчітай, відкрий личко

Немає в світі таємниць. Особливо їх мало у користувача від web-додатки. І якщо ми не знаємо про користувача дещо особисте, все інше броузери з легкістю віддають web-серверу, анітрохи не турбуючись про приватності і бажаннях того самого користувача. Це, звичайно, недобре для користувача, але добре для розробника web-додатки, оскільки для нього знання - велика річ.

Отже, дані від користувача web-додатку можна передати через змінні оточення. Ось список найбільш часто вживаних:

GATEWAY_INTERFACE

Підтримувана версія CGI.

REQUEST_METHOD

Метод запиту, може бути як GET так і POST.

HTTP_REFERER

Адреса сторінки (url), що активує поточний додаток на web-сервері.

PATH_INFO

Шлях переданий додатком розташований між ім'ям програми та рядком запиту.

QUERY_STRING

Рядок запиту, якщо метод - GET, добавляється до url.

REMOTE_HOST

Ім'я хоста віддаленого користувача.

REMOTE_USER

Назва віддаленого користувача.

REMOTE_IDENT

IP-адреса віддаленого користувача.

HTTP_USER_AGENT

Ім'я і версія броузера віддаленого користувача.

За допомогою даних змінних можна отримати вичерпну інформацію про користувача і переданих даних для вірного проектування вашого web-додатки. Звичайно, цього вистачить в тому випадку, якщо ви не збираєтеся подібно Великому Братові стежити за кожним рухом тіла користувача.

Але повернемося до поставленого завдання - передачі даних додатку від користувача через форму. Дані, які передаються через QUERY_STRING в програму за допомогою методу POST, досить просто витягти для використання.

Нижче лістинг програми, що видає список деяких змінних оточення та їх значення. Дізнайтеся дещо про своє броузері і web-сервері.

program CgiVars;

{$ APPTYPE CONSOLE}

uses

Windows;

сonst

VarList: array [1 .. 17] of string [30] =

('SERVER_NAME', 'SERVER_PROOL',

'SERVER_PORT', 'SERVER_SOFTWARE',

'GATEWAY_INTERFACE', 'REQUEST_METHOD',

'PATH_TRANSLATED', 'HTTP_REFERER',

'SCRIPT_NAME', 'PATH_INFO',

'QUERY_STRING', 'HTTP_ACCEPT',

'REMOTE_HOST', 'REMOTE_USER',

'REMOTE_ADDR', 'REMOTE_IDENT',

'HTTP_USER_AGENT');

var

I: Integer;

ReqVar: string;

VarValue: array [0 .. 200] of Char;

begin

writeln ('Content type: text / html');

writeln;

writeln ('');

writeln ('CGI Variables');

writeln ('');

writeln ('CGI Variables');

writeln ('');

for I: = Low (VarList) to High (VarList) do

begin

ReqVar: = VarList [I];

if (GetEnvironmentVariable (PChar (ReqVar),

VarValue, 200)> 0) then

else

VarValue: ='';

writeln (VarList [I] + '=' + VarValue);

end;

writeln ('');

end.

За кадром

У цій статті ми не торкнулися інший і вже напевно більш великої та складної теми, як створення ISAPI-додатків на Delphi. Вищенаведені способи створення додатків придатні лише в тому випадку, якщо вам необхідно швидке, компактне і не дуже складне web-додаток. Якщо ж вам необхідний, наприклад, доступ до баз даних, то подібний шлях неприйнятний.

Для створення повномасштабних програм для інтернету в Delphi існує спеціальний помічник - Web Server Application. З його допомогою можна створити додаток генеріруещее динамічні web-сторінки, засновані на CGI, NSAPI або ISAPI. Єдине що накладається обмеження - безпосередньо web-сервер повинен працювати на базі Windows.

Одним з головних переваг створення подібних додатків саме в середовищі Delphi є те, що ви продовжуєте працювати з візуальними компонентами - це значно простіше, ніж створення додатків в інших середовищах - можливість помилки у великих проектах, де використовується візуальне проектування менше, ніж у тих, де все описується виключно кодом. Крім того, засоби створення web-додатків дозволяють імпортувати вже існуючі програми в інтернет-середовище, що, погодьтеся, важливо. Поки, звичайно, Delphi не володіє великим набором компонентів для web-додатків, але, мабуть, вже наступна версія цього середовища обзаведеться необхідними. Але і зараз Delphi можна вважати досить зручним інструментом для створення додатків, взаємодіючих з інтернетом.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
22.8кб. | скачати


Схожі роботи:
Створення розрахункових додатків і програми пошуку в базі даних у середовищі Delphi 7 0
Створення розрахункових додатків і програми пошуку в базі даних у середовищі Delphi 1970
Створення додатка речового поділу в середовищі Delphi
Створення таблиць за допомогою SQL-запитів в середовищі DELPHI
Створення таблиць за допомогою SQL-запитів в середовищі DELPHI 2
Створення таблиць за допомогою SQL запитів в середовищі DELPHI
Розробка Web додатків із застосуванням Java Servlet технології
Вікна додатків в середовищі Windows
Web-Дизайн і програми для створення web-сторінок
© Усі права захищені
написати до нас