Архитектура Microsoft Windows для разработчиков



Занятие 2. Разработка активных страниц сервера

(Продолжительность занятия 20 минут)

Активные страницы сервера — это комбинация серверных сценариев (на языках VBScript или JavaScript) и тэгов HTML. Файлы активных страниц обрабатываются на Web-сервере.

Используя сценарии серверной части, Вы можете выполнять множество задач, например получать информацию от пользователя, запрашивать данные из БД или строить динамические HTML-страницы для передачи на компьютер-клиент. На этом занятии Вы познакомитесь с архитектурой и синтаксисом активных страниц и узнаете, как их создавать.

 
Изучив материал этого занятия, Вы сможете:

  • описать, как обрабатывается активная страница;
  • размещать VBScript-сценарии в активной странице;
  • перечислить и описать объекты ASP;
  • создать активную страницу.

Архитектура активных страниц

Обрабатывает активные страницы расширение Web-сервера, которое поставляется с Microsoft Visual InterDev и Microsoft Internet Information Server (IIS). Чтобы Вы могли тестировать созданные активные страницы, это расширение нужно установить на Вашем Web-сервере. Последний считывает и обрабатывает ASP с помощью выделенного процесса, поэтому файлы активных страниц должны находиться в виртуальной папке с разрешением Execute.

ASP-сценарий выполняется, когда программа просмотра запрашивает с Web-сервера файл с расширением .asp. Web-сервер вызывает ASP-компонент, который запускает сценарий и выполняет его команды, а затем возвращает программе просмотра созданную HTML-страницу (рис. 10.1).

А теперь самое время запустить видеоролик Chap10a.exe с прилагаемого к книге компакт-диска. Он поможет Вам разобраться в том, как обрабатываются активные страницы.

Статическая HTML-страница, открытая пользователем в программе просмотра, всегда отображает одну и ту же информацию; в отличие от статических страниц, ASP — динамические и интерактивные. Каждый раз когда пользователь запрашивает ASP-файл, выполняется сценарий и пользователь получает только что созданный HTML-документ.

10-4.jpg

Рис. 10.1 Обработка активной страницы сервера

Синтаксис активных страниц

Сценарий серверной части обрамляется парными тэгами <% и %> или заключается в тэг <SCRIPT>. В последнем случае нужно задать значение атрибута RUNAT, который указывает, где следует выполнять код сценария — на сервере или на клиенте. По умолчанию выполнение сценария, обозначенного тэгом <SCRIPT>, откладывается до передачи страницы клиентской программе просмотра.

Тэги <% %>

При обработке активной страницы Web-сервер выполняет любой код, обрамленный тэгами <% и %>. Эти ограничители используются в Web-странице для отделения кода сценария от команд HTML.

Как правило, HTML-код на активных страницах содержится вперемешку с серверными сценариями. Последние же как раз и определяют, какая информация будет возвращена пользователю.

 
Пример В этом примере процедуры Now и Hour, ограниченные тэгами <% и %>, применяются для определения текущего времени. В зависимости от полученного результата выбирается подходящее приветствие — «Доброе утро» или «Добрый день»:

<% if Hour(Now) < 12 then %>

Доброе утро.

<% else %>

Добрый день.

<% end if %>

Например, в 8 часов утра пользователю будет передана строка:

Доброе утро.


 


Пример Здесь средствами сценария VBScript выясняется значение переменной в ASP-файле:

<%Dim MyVar

MyVar = 3

Select Case MyVar

Case 1

%><ВОLD>Значение равно единице. </BOLD><%

Case 2

%><ВОLD>Значение равно двум.</ВОLD><%

End Select%>


Отображение результатов

Чтобы получить результат работы сценария в формате HTML, используйте синтаксис <%= %>.

 
Пример Здесь отображается текущее время:

Текущее время: <%= Time %>.

Например, в 8:34 утра пользователь получит следующее сообщение:

Текущее время: 8:34 AM.


Тэг <SCRIPT>

Серверный сценарий включают в активную страницу с помощью тэга HTML <SCRIPT>, присвоив атрибуту RUNAT значение Server. В раздел <SCRIPT> разрешается добавление функций и подпрограмм серверной части для последующего вызова из других сценариев этой страницы.

 
Пример Здесь серверный сценарий применяется для определения времени суток:

<SCRIPT LANGUAGE=VBScript RUNAT=SERVER>

Function ComputeAMPM()

If Hour(Now) < 12 Then

ComputeAMPM = "утро"

Else

ComputeAMPM = "день"

End If

End Function

</SCRIPT>


Воспользовавшись методом Response.Write, Вы отобразите результат работы сценария из раздела <SCRIPT>.

 
Пример Здесь отображается сообщение, вид которого зависит от времени суток:

<SCRIPT LANGUAGE=VBScript RUNAT=SERVER>

Response.Write "Сейчас " & ComputeAMPM() & "."

</SCRIPT>

Например, в 6 часов утра пользователь увидит сообщение:

Сейчас утро.


Любой код из раздела <SCRIPT>, находящийся вне процедур, выполняется при обработке ASP-файла Web-сервером. Код процедур не задействован до тех пор, пока процедура не будет явно вызвана серверным сценарием.

Встроенные объекты

Встроенные объекты архитектуры ASP позволят Вам расширить функциональные возможности Вашего Web-приложения.

Их средствами Вы обеспечите совместное использование информации Вашего приложения, сохраните данные о конкретном пользователе, получите сведения, передаваемые серверу, отправите сообщение адресату и сможете манипулировать свойствами и методами серверных компонентов. Встроенные объекты и их назначение перечислены в приведенной ниже таблице.

Объект

Описание

Request

Получает информацию, переданную пользователем Web-серверу при HTTP-запросе

Response

Управляет передачей пользователю информации в ответном HTTP-сообщении

Session

Сохраняет сведения о сеансе конкретного пользователя

Application

Обеспечивает совместное использование данных всеми клиентами Web-приложения

Server

Предоставляет доступ к ресурсам Web-сервера

 

Создание активной страницы

Хотя для создания ASP можно использовать любой текстовый редактор, Microsoft Visual InterDev отличается удобной графической средой. Чтобы насладиться его преимуществами, сначала создайте проект для Ваших Web-страниц. В приведенном ниже упражнении мы используем готовый Web-проект, поскольку для тестирования активных страниц необходим Web-сервер, который поддерживает ASP.

> Создание нового проекта

  1. Запустите Microsoft Visual InterDev.
  2. В меню File укажите пункт New.
  3. На вкладке Projects выберите Web Project Wizard.
  4. В поле Project name: введите sample и нажмите ОК.
  5. Мастер Web Project Wizard запросит имя сервера; убедитесь, что в поле имени введено слово localhost. Нажмите Next.
  6. Оставьте в поле имени Web-узла слово sample и нажмите Finish.

> Создание новой активной серверной страницы

  1. В меню File выберите пункт New.
  2. Откройте вкладку Files и щелкните Active Server Page.
  3. Удостоверьтесь, что в поле Add to project выбран проект Sample.
  4. В поле File name введите MyPage.

    Папка проекта должна быть указана в поле Location.

  5. Нажмите ОК.

    Появится шаблон активной серверной страницы.

    Первая строка сценария задает язык сценариев серверной страницы. Например, если Вы выбрали VBScript, будет добавлена следующая строка сценария:

    <%@ LANGUAGE="VBSCRIPT" %>

  6. Замените строку <— Insert HTML Here —> следующим кодом VBScript:

    <% If Hour(Now) < 12 Then %>

    Доброе утро!

    <% Else %>

    Добрый день!

    <% End If %>

  7. В окне Workspace щелкните правой кнопкой файл mypage.asp и выберите пункт Preview in Browser.
  8. Щелкните Yes в ответ на предложение Visual InterDev сохранить файл.

    Теперь в окне программы просмотра Вы увидите приветствие, подходящее для конкретной части суток.

> Смена языка создания сценариев по умолчанию

  1. В меню Tools выберите пункт Options.
  2. Откройте вкладку HTML.
  3. В области Default Languages выберите язык создания сценариев по умолчанию (VBScript или JavaScript) для мастера создания сценариев InterDev и для активных страниц.

Резюме

Активные страницы выполняются специальными компонентами Web-сервера. Сценарии активной страницы обрабатываются, когда программа просмотра запрашивает с Web-сервера ASP-файл. Web-сервер вызывает специальный компонент, который выполняет команды сценария и возвращает созданную HTML-страницу программе просмотра.

Сценарий серверной части ограничивают парные тэги <% и %> или тэг <SCRIPT>. При обработке активной страницы Web-сервер выполняет любой код внутри тэгов <% и %>. Чтобы вставить серверный сценарий в тэг HTML <SCRIPT>, нужно присвоить атрибуту RUNAT значение Server.

ASP снабжены встроенными объектами, которые позволяют расширить функциональные возможности Web-приложений. Используя их, Вы сохраните данные о конкретном пользователе, получите информацию, посылаемую пользователем серверу, отправите сообщение адресату и сможете манипулировать свойствами и методами серверных компонентов.