Active Server Pages 3.0 на примерахНиколас Чейз
Об автореНиколас Чейз (Nicholas Chase) работал над созданием Web-узлов для таких компаний, как Lucent Technologies, Sun Microsystems, Oracle Corporation и Tampa Bay Buccaneers. Свою первую учетную запись электронной почты он получил в 1989 году, а до того как погрузиться в Web, он работал физиком, преподавателем высшей школы, менеджером предприятия по переработке отходов с низким уровнем радиации, редактором электронного журнала научной фантастики, инженером мультимедиа и инструктором по продуктам O racle. В данное время, будучи независимым консультантом, он помогает компаниям в работе с Internet. Он идет по жизни рука об руку с очаровательной женой Сарой (Sarah), которая, возможно, даже не догадывается, насколько важную роль играет в его жизни. Они живут во Флориде вместе с сыном Сином (Sean). Моему отцу, который знал, что я способен сделать это, задолго до того, как это действительно осуществилось БлагодарностиПрежде всего, я хотел бы выразить признательность своей жене за ту уверенность, которую она в меня вселила. Благодарю тебя также за все бессонные ночи, которые ты провела рядом, не позволяя мне расслабиться, так как это могло помешать уложиться в срок, отведенный для написания книги, и особенно за поддержку в те дни, когда работа не клеилась, но ты заставляла меня продолжать ее, несмотря ни на что. К сожалению, здесь невозможно перечислить всего, что ты сделала для меня и за что я готов благодарить теб я вновь и вновь. Низкий поклон Сели Гроувз (Seli Groves) за поддержку и за то, что все эти годы она вела меня в нужном направлении. Огромное спасибо моему сыну Сину, который смирился с тем, что я был чрезвычайно загружен работой и не мог уделять ему столько времени, сколько хотелось бы ему и мне. И наконец, благодарю Мишеля Ньюкомба (Michelle Newcomb), который дал старт всей этой работе. ВведениеМногие начинают изучать новые компьютерные технологии потому, что они либо сами этого хотят, либо вынуждены это сделать. В современном компьютерном мире, особенно когда речь идет об Internet, никто не может знать все. Самое большее, на что можно рассчитывать, - способность разобраться в чем-либо, если в этом будет необходимость. Практически каждому программисту приходилось изучать тот или иной язык либо компьютерную технологию по мере выполнения проекта, причем в строго заданные сроки. С автором этой книги подобное случалось три или четыре раза. В последний раз это произошло, когда мне предстояло выполнить проект, связанный с Active Server Pages (ASP). Не то чтобы я не пытался изучить ASP ранее. Я просматривал информацию в Web и даже начал учебу по электронному курсу, однако когда я понял основную суть этой технологии (а это было несложно), то решил, что я слишком занят и, чтобы действительно освоить ASP, мне придется выполнить реальный проект. Именно это вам и предстоит сделать в процессе освоения материала данной книги. Вместо того чтобы зан иматься отвлеченной теорией, вы создадите конкретный проект от начала и до конца. Позднее у вас будет достаточно времени для того, чтобы изучить всевозможные нюансы. Конечно, если вы сами изучали какое-нибудь средство или технологию подобным образом, то знаете, что основную часть времени занимает поиск ответов на возникающие по мере работы над проектом вопросы о синтаксисе и методах. И если вам не посчастливилось иметь наставника, то наверняка понадобится задать кому-нибудь подобный вопрос. Теперь у вас есть такая возможность. Вы создадите этот проект вместе с автором книги и, надеюсь, получите ответы на все вопросы по мере их возникновения. Краткая история World Wide WebНа рисунках, имеющих отношение к WWW, чаще всего Internet изображается в виде тучи - неопределенного объекта, куда попадают и откуда исходят различные "штучки", но никто точно не знает, как именно это происходит. Возможно, такое представление о WWW в некотором смысле обоснованно. Web является частью Internet, которая состоит из миллионов компьютеров, соединенных друг с другом в один гигантский муравейник. Предшественницей Internet послужила сеть ARPAnet, созданная Агентством по исследованиям в сфере обороны (Defense Advanced Research Project Agency, DARPA) в 60-е годы. ARPAnet (а следовательно, Internet) была организована таким образом, что каждый компьютер соединялся с двумя другими машинами. Сообщения можно было передавать с одного компьютера в сети на любой другой различными путями, так что одно-единственное нарушение системы не могло привести к большим проблемам. ARPAnet переросла в Internet, всемирную сеть, которую сначала использовали в основном ученые и университеты. На первых порах большая часть доступной информации основывалась на тексте. Пересылались только текстовые электронные сообщения. Пользователи регистрировались в системах, основанных на тексте. Наибольшее графическое оформление в Internet, которое когда-либо видели пользователи, содержалось в регистрации такого электронного сервиса, как CompuServe, предназначенного для получения через Internet тек стовых сообщений. Это было давно - в конце 80-х годов. Идея "связанных" документов возникла за несколько десятилетий до того времени. В новаторской статье Ванневара Буша (Vannevar Bush) As We May Think ("Можете себе представить"), опубликованной в июльском номере журнала The Atlantic Monthly за 1945 год, была описана машина memex, которая позволит пользователям отслеживать прохождение информации. В начале 50-х Тэд Нельсон (Ted Nelson) описал систему Xanadu, в которой пользователи могли оставлять комментарии к существую щим связанным данным, или "гипертекст". В 1980 году Тимоти Бернерз-Ли (Timothy Berners-Lee), консультант Европейской лаборатории физики частиц (European Laboratory for Particle Physics - CERN), создал программу под названием Enquire, которая использовала "горячие точки" для хранения данных. В 1989 году он написал статью, где предложил, чтобы CERN создала систему, основанную на гипертексте, для хранения огромного количества собранной информации. Именно эта система стала всемирной сетью World Wide Web. Первое описание языка разметки гипертекста (Hypertext Markup Language - HTML) было опубликовано в августе 1991 года, однако большинство пользователей смогли испытать его на таких броузерах, как Lynx, которые могли выполнять основное форматирование текста, например выделение полужирным шрифтом или курсивом, а также позволяли пользователям "перескакивать" между связями. В 1993 году Национальным центром суперкомпьютерных приложений (Nation al Center for Supercomputing Applications - NCSA) при Университете Иллинойс-Урбана/Шампэйн был создан новый программный продукт. Приложение Mosaic имело все возможности Lynx. Оно работало с операционными системами Windows, Macintosh, UNIX и имело одно очень существенное преимущество: могло показывать изображения. Таким образом, к новой всемирной сети добавился элемент творчества. К тому времени популярность Internet возросла. Задолго до Web в Internet существовала электронная почта, группы общения (в виде Internet Relay Chat - IRC) и дискуссионные группы (в виде Usenet). Internet Relay Chat (IRC) - это система связанных между собой серверов, которые позволяют пользователям вести беседу между собой в режиме реального времени, при этом они не обязательно должны быть подключены к одному и тому же компьютеру. Группа новостей (newsgroup) - это нечто подобное электронному дискуссионному форуму или доске объявлений. Пользователи оставляют сообщения, которые передаются с одного сервера на другой наподобие сообщений электронной почты. Но, в отличие от сообщений электронной почты, которые адресованы определенному человеку и доставляются без постороннего вмешательства, сообщения группы новостей сохраняются для всеобщего доступа. Чтобы получить сообщение, пользователь специально должен обратиться к гр уппе новостей. Usenet - это система серверов, соединенных между собой, которые передают сообщения, поддерживая систему групп новостей, доступных для всеобщего пользования. Новый способ отображения информации с использованием изображений и возможностями для творчества покорил воображение публики, и начался бум Internet. Динамическое содержимое и Active Server PagesКогда World Wide Web появилась на сцене Internet в начале 90-х годов, это было статическое средство. Web-страница представляла собой текстовый файл, отформатированный особым образом. Он не мог изменяться или настраиваться в зависимости от информации, вводимой пользователем, или в зависимости от изменяющихся условий. HTML (Hypertext Markup Language - язык разметки гипертекста) представляет собой способ использования особых текстовых меток, таких как <В> для полужирного шрифта или <I> для курсива, с помощью которых помечается или описывается информация, чтобы указать броузеру, как ее отобразить. Рассмотрим простой пример кода HTML из листинга 1. Листинг 1. Пример НТМL-страницы <HTML>
Со временем возник новый способ отображения содержимого в Web - CGI (Common Gateway Interface). Он предоставил разработчикам возможность настраивать все элементы так, чтобы вместо простого обращения к статическому текстовому файлу Web-сервер выполнял сценарий и возвращал полученные результаты. Большинство сценариев CGI писались (и до сих пор пишутся) на языке С или Perl. Сценарий CGI на языке Perl может выглядеть так, как показано в листинге 2. Листинг 2. Пример сценария CGI на языке Perl #!/user/bin/perl
Статическое содержимое не изменяется. Большинство НТМL-страниц являются статическими. Всякий раз, когда их открывают в окне броузера, они выглядят одинаково. Динамическое содержимое изменяется в соответствии с имеющимися условиями. Когда вы обращаетесь к Web-узлу банка и открываете баланс своего счета, то это динамическое содержимое. Оно изменяется в зависимости от того, сколько денег по данным банка имеется на счете в текущий момент. Эта возможность предоставлять актуальную информацию дает авторам Web-страниц чрезвычайно мощное средство. Вместо того чтобы вслепую предоставлять информацию всем пользователям, теперь можно принимать информацию от каждого конкретного человека. Средства для выполнения поиска были неотъемлемой частью Web с самого начала, но теперь появилась возможность получать информацию от пользователей и предоставлять информацию, ориентированную на конкретного пользователя, поскольку содержимое может генерироваться в процессе работы. Это открыло целый мир новых возможностей - от простого получения информации до бума электронной коммерческой деятельности, свидетелями которого мы являемся в настоящее время. CGI остается популярным до сих пор, хотя имеются и лучшие решения для крупных проектов. В основном это объясняется тем, что сценарии CGI создаются на языках, которые могут работать на различных платформах. Однако в CGI существует ряд проблем, связанных с масштабированием и простотой использования. В большинстве случаев при вызове сценария CGI должен каждый раз запустить новый процесс на Web-сервере, выполнить сценарий, а затем "подчистить" все, что осталось от его работы. Обычно этого бывает достаточно, но если частота использования сценария возрастает, то это может привести к чрезмерной нагрузке на сервер. Кроме того, хотя С и Perl - традиционные языки написания сценариев CGI - довольно просты в изучении, они могут отпугнуть неопытных программистов, чем надежно удерживают многих разработчиков от применения динамического содержимого. Масштабирование - это возможность обрабатывать большое количество действий. Если в системе достаточно ресурсов, то она работает хорошо независимо от того, обращается к ней всего несколько пользователей или целые "толпы". Но есть системы, которые потребляют так много ресурсов, что после достижения некоторой частоты использования их поддержка становится чрезвычайно сложной и даже вообще невозможной. Эта ситуация изменилась с появлением Active Server Pages (ASP). Вместо того чтобы выполнять программу, которая могла создать страницу HTML, Active Server Page представляет собой страницу НТМL, которая может содержать выполняемые команды. Кроме того, язык VBScript, который обычно используется для написания ASP, намного проще других языков, и новичку гораздо легче в нем разобраться. Не следует думать, что проще всегда означает лучше. Бывают случаи, когда нужно выполнить сложное задание, и сценарий CGI, написанный на языке С, будет на самом деле работать быстрее и проще, чем ASP. "Выбирайте подходящий инструмент для каждой работы", - этот девиз справедлив не только по отношению к аппаратному обеспечению. Все это привело к тому, что начинающим программистам Web теперь легче создавать проекты. Что вам предстоит сделатьЧитая данную книгу, вы создадите Web-узел для (воображаемого) журнала научной фантастики под названием Primary Outpost. Этот журнал, конечно же, содержит новости и интервью, а также архивные материалы, небольшой магазин тематических сувениров, частные объявления о продаже (аукционы) и персонализированные начальные страницы. (Вы должны попытаться сделать этот узел как можно более привлекательным.) Web-узел считается привлекательным, если люди к нему возвращаются. В процессе этой работы вы изучите несколько тем.
Чего вы не будете делатьВ ASP можно выполнять чрезвычайно сложные вещи, но это не значит, что настоящая книга охватывает абсолютно все. После того как мне доверили самый первый проект, я написал или принимал участие в написании нескольких коммерческих Web-узлов, основанных на ASP, в том числе проект, над которым более года работала целая группа программистов. Все основные положения, которые были необходимы при выполнении этих проектов, описываются в данной книге. Однако есть ряд вопросов, которые здесь не рассматриваются.
Требования к системеПо мере изучения материала данной книги вы столкнетесь с необходимостью выполнения двух совершенно разных задач: написание ASP и чтение ASP. К каждой из них предъявляются особые требования. Разработка страницВсе, что вам действительно необходимо для написания Active Server Pages, как и НТМL, - это текстовый редактор, например Блокнот (Notepad) или Simpletext. Если у вас имеется средство разработки, например Visual InterDev или Microsoft FrontPage, то это просто замечательно! Такое средство облегчит вашу жизнь (а также отладку!), однако это необязательное условие. Мы не сможем визуально отладить сценарий ASP без Visual InterDev и IIS 4.0 или IIS 5.0, однако существуют и другие способы определить, что происходит на наших страницах. Подача страницПосле того как вы напишете Active Server Page, у вас будет только текстовый файл. Его еще нужно подать, т.е. выполнить на Web-сервере. Здесь начинаются некоторые сложности. Подача страниц может быть выполнена различными способами, и не все из них требуют запуска программного продукта на вашем компьютере. В зависимости от операционных систем и обстоятельств, подача страниц может осуществляться следующим образом.
Web-хостинг. Лишь немногие пользователи (обладающие быстрым соединением с Internet по системе 24x7 - двадцать четыре часа в сутки, семь дней в неделю) могут размещать у себя на сервере собственные Web-узлы. В большинстве случаев они арендуют место на другом компьютере, оплачивая ежемесячный взнос за возможность публиковать в Web свою информацию таким образом. Компания, компьютер которой вы используете для получения доступа в Internet и размещения своих Web-страниц, называется провайдером услуг Internet, а способ такого размещения Web-хостингом. FTP-клиент - это программа, которая позволяет передавать файл на другой компьютер в Internet с помощью стандартного протокола передачи файлов (File Transfer Protocol - FTP), например WS FTP (Windows) и Fetch (Macintosh). Теперь, когда вы знаете, что вам предстоит и какого результаты вы должны добиться, приступим к делу! |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
|
В избранное | ||