ebook img

ASP на блюдечке PDF

243 Pages·2.483 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview ASP на блюдечке

ASP на блюдечке Рубен Садоян Опубликовано в журнале: КомпьютерПресс. 2000-2001. Содержание Часть 1, Построение интерфейса к базе данных Часть 2, ActiveX-компоненты и ASP Часть 3, Программируем Wap Часть 4, Виртуальный магазин Часть 5, Виртуальный магазин (продолжение) Часть 6, Использование ADO в ASP Часть 7, Классический Интернет-магазин Часть 8, Форум своими силам Часть 9, Чат своими силами Часть 10, Форум своими силами (продолжение) Часть 11, Методы сжатия мультимедиа-данных в WWW и Online Streaming своими руками Часть 12, Чат своими силами (версия 2) Часть 13, Формализация подхода разработки Web-интерфейсов к базам данных Часть 14, Разработка системы электронного голосования Часть 15, Создаем гостевую книгу своими руками Часть 16, Администрирование Часть 17, Иерархическая навигационная система меню (с помощью ASP, XML и JavaScript) Часть 1 Построение интерфейса к базе данных Ты никогда не будешь знать достаточно, если не будешь знать больше, чем достаточно. Уильям Блейк Рубен Садоян Введение Немного истории HTML (HyperText Markup Language) DHTML (Dynamic HyperText Markup Language) Языки сценариев (JavaScript и VBScript) Технологии Java и CGI ASP и PHP Зачем нужен ASP Чем отличается ASP от других CGI Интерфейс к базе данных с помощью ASP Постановка задачи Что нам понадобится Создание и подготовка базы данных Оформляем главную страницу (index.asp) Язык структурированных запросов — SQL Что такое Global.asa Удаляем статью (RemoveForm.asp и Rem.asp) Организуем поиск (SearchForm.asp и SearchDBS.asp) И в заключение Введение Еще совсем недавно, когда Интернет являл собой лишь роскошь для избранных, профессия разработчика интерактивных Web-приложений была сродни профессии шофера в начале XX века или космонавта — в середине века. Как и в большинстве профессий, поначалу был просто врач, просто инженер, просто разработчик гипертекстовых страниц. В настоящее время уже довольно сложно разобраться во всевозможных профессиях, связанных с Интернетом, и инструментах для решения самых различных Интернет-задач. Давайте попробуем разобраться в этом пестром мире средств, служащих в конечном счете для нас с вами — читателей занимательных, ярких и разнообразных страниц всемирной компьютерной сети, и рассмотрим одно из них — ASP. Настоящая статья — попытка собрать воедино весь инструментарий, необходимый и достаточный для построения простейшего Web-интерфейса к базам данных. И хотя для простоты изложения и понимания материала рассматриваются примеры по работе с базами данных MS-Access, тем не менее, освоив их, для читателя не составит труда перейти к созданию аналогичных интерфейсов к другим базам. Статья адресована начинающим Web-программистам, профессионалам же будет достаточно беглого взгляда, чтобы понять принципы и вникнуть в детали работы активных серверных страниц — ASP. Немного истории Итак, проведем небольшой экскурс в историю развития и становления средств разработки содержания (content) и поведения (behavior) Всемирной паутины. HTML (HyperText Markup Language) HTML — язык разметки гипертекста — является приложением языка SGML (Standard Generalized Markup Language) — стандартный обобщенный язык разметки. Средствами HTML задаются синтаксис и размещение специальных встроенных указаний, в соответствии с которыми браузер отображает содержимое документа (текст, графика, мультимедиа, гиперссылки). Базовый синтаксис HTML определяется стандартом HTML. Говоря другими словами, HTML — язык компоновки документов и спецификации гиперссылок, используемый для кодировки документов в WWW. Было время, когда знание HTML могло считаться необходимым и достаточным для владения профессией разработчика Web-страниц. Теперь же это только база — необходимая, но далеко не достаточная для создания подлинного интерактива (взаимодействия с читателем). <html> ------------------------------------------------------------------------- <head> <title> Заголовок HTML документа </title> </head> ------------------------------------------------------------------------- <body> Тело HTML документа </body> ------------------------------------------------------------------------- </html> Простой HTML-документ С течением времени страницы Всемирной компьютерной сети постепенно начали «оживать», если выражаться пользовательской терминологией, а по сути произошел переход от структурного предъявления гипертекстовой информации к событийному. Если быть точнее, то переходом это в полной мере называть нельзя, попросту HTML обогатился средствами динамической интерпретации, или Dynamic HTML (DHTML — Dynamic HiperText Markup Language). DHTML (Dynamic HyperText Markup Language) До недавнего времени информация в большинстве Web-документов была статической, что требовало реакции сервера на действия пользователя. С введением DHTML парадигма Web сместилась от взаимодействия с сервером в сторону создания интерактивных Web- узлов и Web-приложений. Основной отличительной особенностью DHTML от HTML является возможность взаимодействия DHTML-документов с пользователем на клиентском компьютере, что в значительной степени обогащает возможности создаваемых с их помощью Web-страниц и Web-приложений и в то же время сводит часть взаимодействия пользователя с сервером к взаимодействию пользователя с DHTML- документом. Таким образом, можно говорить о перенесении некоторой доли вычислений с серверной на клиентскую сторону, что, разумеется, сокращает объем передаваемой информации от клиента серверу и обратно и экономит время. Как следствие, страницы, разработанные с использованием модели DHTML, в отличие от HTML, работают значительно быстрее именно за счет снижения объема информации, передаваемой от клиента (браузера) серверу и обратно. Языки сценариев (JavaScript и VBScript) Введя понятие DHTML, необходимо поговорить о языках создания сценариев событий HTML-документов. Для начала давайте определим понятие «сценарий». Итак, сценарий, в отличие от программы, имеет лишь одно направление выполнения — сверху вниз, именно поэтому, говоря о сценариях, встроенных в HTML-документы, не следует забывать о строгом порядке, в котором браузер формирует содержимое страницы. Компания Netscape разработала язык создания сценариев JavaScript, а компания Microsoft — VBScript. Эти языки используются на стороне клиента, то есть генерируют объекты на основании HTML-страницы на стороне клиента в окне его браузера. <!-- Here Script starts --> <SCRIPT LANGUAGE="javascript"> function RunningTime() { var RightNow = new Date() var ampm = RightNow.getHours() if (ampm >= 12) {nampm = "PM"} else {nampm = "AM"} var hr = RightNow.getHours() if (hr > 12) {nhr = hr -12} else {nhr = hr} if (hr == 0) {nhr = "12"} else {nhr = nhr} var min = RightNow.getMinutes() if (min < 10) {nmin = "0" +min} else {nmin = min} var sec = RightNow.getSeconds() +1 if (sec < 10) {nsec = "0" +sec} else {nsec = sec} if (nsec >= 60) {nnsec = "00"} else {nnsec = nsec} var printIt = "Time: " +nhr+ ":" +nmin+":" +nnsec+ ":" +nampm document.clock.clockface.value = printIt var KeepItGoing=setTimeout("RunningTime()","1000") } </SCRIPT> <!-- End of the script --> <FORM NAME="clock"> <INPUT TYPE="text" name="clockface"> <INPUT TYPE="button" VALUE="Get the Time" onClick="RunningTime()"> </FORM> Пример весьма полезного JavaScript сценария Технологии Java и CGI В 1994 году специалистами компании Sun Microsystems была разработана технология создания динамических интерактивных Web-страниц — Java. Программы на языке Java называются аплетами (little applications). Аплеты пишутся на Java и посылаются по Web как HTML-файлы браузеру, где выполняются как HTML-документы. Существенным преимуществом Java является независимость программ от платформ, на которых программы выполняются. Хотя Java не обязательно выполняется в окне браузера, возможно создание независимых (stand-alone) Java-приложений, которые могут выполняться на компьютере независимо от Интернета. Фактически программа на языке Java транслируется компилятором в специальный код, называемый байтовым (bytecode), а затем выполняется уже с помощью интерпретатора языка Java. Такое «разделение обязанностей» и позволяет обеспечивать полную независимость Java-кода от конечной платформы, на которой он будет выполняться. Разумеется, для каждой конкретной платформы имеется свой интерпретатор языка, называемый виртуальной машиной Java (Java Virtual Machine). <applet code="HelloWorld.class" width=150 height = 75> Если Вы видите это сообщение, Ваш браузер не имеет поддержки Java. </applet> Исходный текст класса "HelloWorld.java" (компилируется в "HelloWorld.class"): import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Приветы всем!", 10, 70); } Много полезных Java-аплетов лежат здесь. Сайт языка Java компании Sun Microsystem's: http://java.sun.com/. Схема исполнения аплетов коренным образом отличается от схемы выполнения CGI- скриптов. Последние, в частности, выполняются на стороне сервера, в отличие от Java- аплетов, которые выполняются, как правило, на стороне клиента. Что же такое CGI (Common Gateway Interface), или интерфейс общего шлюза? По сути CGI — способ взаимодействия Web-программ с браузером пользователя. Поэтому под CGI-программами понимают программы, написанные на любом языке программирования, способного выполняться на Web-сервере, включая C, C++, Visual Basic или даже командные языки операционных сред (например, C Shell). Но большинство CGI-программ пишется на языке Perl. Perl (Practical Extraction and Report Language) является одним из наиболее гибких языковых средств, служащих для программирования интерфейсов CGI. Изначально Perl предназначался для обработки больших объемов данных и генерации отчетов по обработке этих данных (как явствует из его названия). За последние несколько лет Perl превратился в полнофункциональный язык программирования. Изначально созданный исключительно для работы под управлением операционных систем семейства UNIX, Perl теперь совместим с такими ОС, как Amiga, MS-DOS, OS/2 Warp, VMS, Windows NT, Window 95 и Macintosh. ASP и PHP В последнее время все большую популярность получают эти два средства создания интерактивных Web-страниц. Основным их достоинством является возможность формирования страниц на основании интерактива «клиент-сервер». Сами же программы, написанные на ASP (Active Server Pages — активные серверные страницы) и PHP (Personal Home Page), настолько просты, что программирование с их помощью доступно даже неискушенным. <? php if ( strstr ( $HTTP_USER_AGENT, "MSIE" ) ) { ?> <center><b>You are using Internet Explorer</b></center> <? } else { ?> <center><b>You are not using Internet Explorer</b></center> <? } ?> Пример PHP кода определяющего версию браузера PHP часто еще называют препроцессором гипертекста (Hypertext Preprocessor). По сути PHP серверный (выполняющийся на стороне сервера) мультиплатформный язык описания сценариев, встраиваемый непосредственно в HTML-код. В настоящее время PHP интенсивно используют более полумиллиона доменов Всемирной компьютерной сети, он распространяется на правах freeware и его можно свободно скачать с сайта разработчика http://www.php.net/. Основу синтаксиса PHP составляют язык программирования C, Java и Perl. Целью создания языка является разработка динамически генерируемых страниц в кратчайшие сроки. Например, если Вы создаете online-каталог, вам скорее всего понадобится разрабатывать не сами HTML-страницы, а их шаблоны, по которым PHP будет формировать HTML- страницы исходя из ваших потребностей. Традиционно этот колоссальный объем работы выполняется вручную. С помощью PHP гораздо проще организовать интерфейс к базе данных и динамическое формирование страниц. Несмотря на то что PHP — прекрасная альтернатива ASP, мы остановимся на последнем. Сравнивая эти два средства, решающие по сути схожие задачи, следует отметить переносимость первого (PHP) в отличие от второго (ASP) и специальную «заточку» ASP под создание гибких и удобных интерфейсов к базам данных. Это включает использование ActiveX Data Objects (ADO). Колоссальная поддержка структурированного языка запросов к базам данных SQL является мощнейшим средством, используя которое разработчик может не переучиваясь, работать напрямую с базами данных привычным образом. ASP поддерживает работу со всеми базами данных, соответствующими стандарту ODBC. Говоря простыми словами, Active Server Pages — это обычные страницы, которые содержат скрипты, выполняющиеся на сервере наряду с обычным HTML-кодом (если вы посмотрите на строку адреса в окне браузера, то заметите довольно часто встречающееся расширение .asp). Если вы когда-нибудь программировали на Perl, то начать писать на ASP не составит для вас труда, ведь принцип почти один и тот же: после того как «серверный» код обработан сервером, результирующая страница, содержащая только клиентский код (HTML, JavaScript, VBScript), посылается клиенту. Код, выполнявшийся на стороне сервера, увидеть в окне браузера невозможно — вы видите лишь результат его работы. ASP работает как под управлением Windows NT-сервера (необходимо установить Windows NT Server и Web-сервер с поддержкой ASP — Microsoft's Internet Information Server [IIS]), так и под управлением других операционных систем. В последнее время компания Chili!Soft разработала версии ASP для следующих операционных систем:  Linux (Red Hat Linux 6.2, 6.1, Suse Linux 6.4, Linux-Mandrake 7.0, Slackware Linux 7.0)  Windows NT  Solaris (Solaris 2.7, Solaris 2.6, 2.5.1)  AIX  HP-UX ASP становится совместимым со все большим числом операционных систем. <%@ LANGUAGE="VBSCRIPT" <HTML> <HEAD> <TITLE>ASP test</TITLE> </HEAD> <BODY> <%= "Good day! It is now " & time </BODY> </HTML> Еще пару лет назад процесс программирования Web-серверов был отнюдь не тривиальной задачей. Написание CGI (Common Gateway Interface)-программ требовало особой осторожности и весьма высокой квалификации от программистов и администраторов, возникали сложности при отладке большинства приложений написанных на C, C++ или Perl. Когда компания Microsoft выпустила 3-ю версию своего Web-сервера (Internet Information Server), в начале 1997 года был создан принципиально новый метод написания серверных приложений. Зачем нужен ASP Активные серверные страницы (Active Server Pages) и HTML взаимодействуют с базами данных совершенно по-разному. Принципиальное отличие состоит в том, что на HTML- странице строка с директивой, осуществляющей прямое соединение с базой данных, расположена непосредственно в исходном коде страницы в окне браузера на стороне клиента. В ASP-странице она заменена переменной Web-приложения, которая определена в специальном файле global.asa и доступна всем ASP-страницам Web-приложения. Чем отличается ASP от других CGI Как известно, CGI обеспечивает способ, посредством которого Web-браузер осуществляет запуск Web-приложения на стороне сервера, результатом работы которого является HTML-страница, посылаемая клиенту. Всякий раз, когда клиент инициирует выполнение CGI-приложения, Web-сервер выполняет отдельную его копию (instance). Проблема заключается в том, что для каждого запроса клиента запускается копия Web-приложения на сервере, что резко сокращает производительность сервера при больших и средних нагрузках. Совсем иначе обстоят дела в случае использования ASP. Предположим, одно и то же приложение выполняется двумя разными клиентами. Двух приложений не существует, существуют лишь две сессии одного и того же приложения. И всякий раз, когда новым клиентом осуществляется запрос, порождается новая сессия Web- приложения. ASP позволяет перемешивать HTML-код с программным кодом, что, в свою очередь, позволяет легко и удобно встраивать серверные программы в страницы, причем первые будут выполняться только на стороне сервера. Еще одним мощным средством является поддержка ActiveX, так как ASP является языком, обеспечивающим полную поддержку ActiveX Scripting Interface. Итак… Часть 2 ActiveX-компоненты и ASP If you build it, they will come. If you make it dynamic (using ASP, ActiveX and this article) they'll come back more often. Рубен Садоян Введение Что же такое Active X? (Небольшое «лирическое» отступление) А зачем, собственно, применять Active X-технологию в ASP? С чего начать? Что для этого понадобится? Создание и подготовка базы данных Применение Active X в ASP Формируем главную страницу (index.asp) Загружаем файл с HTML-формы Форма загрузки (UploadForm.asp) (Обработка формы загрузки с помощью ActiveX-компонента Upload2DBS.asp) Загрузка файлов с помощью ASP и VBScript Форма загрузки Скрипт-загрузчик А теперь давайте попробуем сами разработать ActiveX-компонент… …с помощью Microsoft Visual Basic 6.0 … с помощью Microsoft Visual C++ 6.0 Еще несколько слов в защиту C++ Заключение Введение В первой статье серии «ASP на блюдечке» («ASP на блюдечке. Часть 1. Построение интерфейса к базе данных», КомпьютерПресс 9 за 2000 год) мы ознакомились с ASP, а также с принципами построения с его помощью простейшего интерфейса к базе данных (газетный сайт со встроенными возможностями его пополнения новыми статьями, снабжаемыми фотографиями непосредственно с самого сайта и без программирования). Теперь я предложу читателям обогатить этот интерфейс возможностями загрузки (upload) HTML-статьи и иллюстрации к ней непосредственно с сайта (то есть с HTML-формы), ведения автоматической статистики посещений, организации показа баннеров, а также методами использования и азами разработки Активных Серверных Компонентов (Active Server Components) для ASP. Статья будет весьма полезна начинающим Web- программистам, профессионалам же достаточно беглого взгляда, чтобы понять принципы и вникнуть в детали работы активных серверных страниц — ASP. Итак… Что же такое Active X? (Небольшое «лирическое» отступление) Как вы уже догадываетесь, в настоящей статье речь пойдет о технологиях ActiveX и COM. Те, кому эти технологии и принципы их работы известны, могут пропустить настоящий параграф. Однако рекомендую все-таки освежить в памяти некоторые детали. Именно благодаря этим технологиям процесс разработки активных серверных страниц может стать гораздо проще и быстрее. Итак, что же такое COM (Component Object Model) и ActiveX? Чтобы ответить на этот вопрос, зададимся сначала другим: каким образом одна часть программного обеспечения должна получать доступ к сервисам, предоставляемым другой частью? Сегодня ответ на этот вопрос зависит от того, что представляют собой эти части. Например, приложения, скомпонованные с библиотекой, могут пользоваться ее сервисами, вызывая функции из этой библиотеки. Приложение может также использовать сервисы другого — являющегося совершенно отдельным процессом. В данном случае два локальных процесса взаимодействуют посредством некоего механизма связи, который обычно требует определения протокола между этими приложениями (набор сообщений, позволяющий одному приложению выдавать запросы, а другому соответствующим образом отвечать на них). Еще пример: приложение, использующее сервисы операционной системы. Здесь приложение обычно выполняет системные вызовы, обрабатываемые операционной системой. Наконец, приложению могут понадобиться сервисы, предоставляемые программным обеспечением, выполняемым на другой машине, доступ к которой осуществляется по сети. Получить доступ к таким сервисам можно множеством способов, таких как обмен сообщениями с удаленным приложением или вызовы удаленных процедур. В принципе, проблема одна: первая часть программного обеспечения должна получить доступ к сервисам, предоставляемым второй частью. Но в каждом отдельном случае механизм доступа разный: вызовы локальных функций, передача сообщения средствами связи между процессами, системные вызовы (которые с точки зрения программиста выглядят практически так же, как и вызовы функций) или одна из разновидностей сетевых коммуникаций. Каждый такой объект поддерживает один или несколько интерфейсов, состоящих из методов. Метод — это функция или процедура, которая выполняет некоторое действие и может быть вызвана программным обеспечением, использующим данный объект (клиентом объекта). Методы, составляющие каждый из интерфейсов, обычно определенным образом взаимосвязаны. Клиенты могут получить доступ к сервисам объекта COM только через вызовы методов интерфейсов объекта — у них нет непосредственного доступа к данным объекта.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.