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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Версія CGI, що підтримується.

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

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

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

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

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

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

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

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

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

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

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

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

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