ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

    Створення 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

    Рядок

    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_PROTOCOL',

    '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 можна вважати досить зручним інструментом для створення додатків, взаємодіючих з інтернетом.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.hostmake.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status