(Продолжительность занятия 20 минут)
Активные страницы сервера — это комбинация серверных сценариев (на языках VBScript или JavaScript) и тэгов HTML. Файлы активных страниц обрабатываются на Web-сервере.
Используя сценарии серверной части, Вы можете выполнять множество задач, например получать информацию от пользователя, запрашивать данные из БД или строить динамические HTML-страницы для передачи на компьютер-клиент. На этом занятии Вы познакомитесь с архитектурой и синтаксисом активных страниц и узнаете, как их создавать.
Архитектура активных страниц
Обрабатывает активные страницы расширение 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.1 Обработка активной страницы сервера
Синтаксис активных страниц
Сценарий серверной части обрамляется парными тэгами <% и %> или заключается в тэг <SCRIPT>. В последнем случае нужно задать значение атрибута RUNAT, который указывает, где следует выполнять код сценария — на сервере или на клиенте. По умолчанию выполнение сценария, обозначенного тэгом <SCRIPT>, откладывается до передачи страницы клиентской программе просмотра.
Тэги <% %>
При обработке активной страницы Web-сервер выполняет любой код, обрамленный тэгами <% и %>. Эти ограничители используются в Web-странице для отделения кода сценария от команд HTML.
Как правило, HTML-код на активных страницах содержится вперемешку с серверными сценариями. Последние же как раз и определяют, какая информация будет возвращена пользователю.
<% if Hour(Now) < 12 then %>
Доброе утро.
<% else %>
Добрый день.
<% end if %>
Например, в 8 часов утра пользователю будет передана строка:
Доброе утро.
<%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.
> Создание нового проекта
> Создание новой активной серверной страницы
Папка проекта должна быть указана в поле Location.
Появится шаблон активной серверной страницы.
Первая строка сценария задает язык сценариев серверной страницы. Например, если Вы выбрали VBScript, будет добавлена следующая строка сценария:
<%@ LANGUAGE="VBSCRIPT" %>
<% If Hour(Now) < 12 Then %>
Доброе утро!
<% Else %>
Добрый день!
<% End If %>
Теперь в окне программы просмотра Вы увидите приветствие, подходящее для конкретной части суток.
> Смена языка создания сценариев по умолчанию
Резюме
Активные страницы выполняются специальными компонентами Web-сервера. Сценарии активной страницы обрабатываются, когда программа просмотра запрашивает с Web-сервера ASP-файл. Web-сервер вызывает специальный компонент, который выполняет команды сценария и возвращает созданную HTML-страницу программе просмотра.
Сценарий серверной части ограничивают парные тэги <% и %> или тэг <SCRIPT>. При обработке активной страницы Web-сервер выполняет любой код внутри тэгов <% и %>. Чтобы вставить серверный сценарий в тэг HTML <SCRIPT>, нужно присвоить атрибуту RUNAT значение Server.
ASP снабжены встроенными объектами, которые позволяют расширить функциональные возможности Web-приложений. Используя их, Вы сохраните данные о конкретном пользователе, получите информацию, посылаемую пользователем серверу, отправите сообщение адресату и сможете манипулировать свойствами и методами серверных компонентов.