Помощь в написании студенческих работ
Антистрессовый сервис

Создание Web-приложений в среде Delphi

РефератПомощь в написанииУзнать стоимостьмоей работы

Одним из главных преимуществ создания подобных приложений именно в среде Delphi является то, что вы продолжаете работать с визуальными компонентами — это значительно проще, чем создание приложений в других средах — возможность ошибки в больших проектах, где используется визуальное проектирование меньше, чем в тех, где всё описывается исключительно кодом. Кроме того, средства создания… Читать ещё >

Создание 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) и запустить сам сервер. Теперь, если вы перейдете по адресу internet в броузере, вы должны увидеть результат действия данной программы — строку 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.

Не правда ли просто? Теперь, если в адресной строке броузера вы наберете, например internet будет сгенерирована страница, отображающая текущее время, internet — соответственно дата, а при передаче параметра 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_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 можно считать достаточно удобным инструментом для создания приложений, взаимодействующих с интернетом.

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

Для подготовки данной работы были использованы материалы с сайта internet.

Показать весь текст
Заполнить форму текущей работой