Занятие 3. ASP

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

Активные страницы сервера позволяют встраивать сценарии в HTML-документы. На этом занятии Вы познакомитесь с работой ASP и составляющими их компонентами.


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


Активные страницы сервера (ASP) позволяют комбинировать HTML, сценарии и повторно используемые серверные компоненты Microsoft ActiveX для создания динамических Web-узлов. ASP поддерживает выполнение сценариев Microsoft Visual Basic Scripting Edition и Microsoft JScript на сервере Internet Information Server. Вся обработка ASP осуществляется на сервере. В результате получается HTML-документ, адаптированный к возможностям Web-обозревателя конкретного пользователя.

Преимущества ASP

Основное достоинство ASP в том, что они позволяют Web-разработчику создавать динамическое наполнение узла. В результате Web-узел предоставит пользователю материалы, соответствующие его предпочтениям, демографическим данным или другим критериям (например, возможностям его Web-обозревателя).

Компонент ADO обеспечивает активным страницам средства доступа к некоторым источникам данньк. В состав Internet Information Server входят драйверы для баз данных Microsoft SQL Server, Microsoft Access и Oracle. Доступ к другим базам данным осуществляется средствами ODBC.

Интерфейс OLE DB расширяет возможности ODBC, обеспечивая доступ ко многим другим источникам данньк, включая файлы Microsoft Excel, текстовые файлы, файлы журналов, сообщения Microsoft Exchange Server, файлы индекснопоследовательного доступа (Indexed Sequential Access Method, ISAM), виртуальные хранилища, файлы AS/400 и т. д.

Все приложения Web-сервера Internet Information Server способны выполняться в одном адресном пространстве, что, безусловно, повышает эффективность и улучшает масштабируемость. По умолчанию приложения Internet Information Server реализуются в виде потоков в адресном пространстве Web-сервера;

новый процесс для каждого приложения не создается. С другой стороны, администратор может сконфигурировать любую программу для работы в отдельном адресном пространстве, чтобы изолировать ее от остальных Web-приложений на сервере (например, дабы гарантировать, что проблема в работе данного приложения не приведет к остановке сервера). Следует, однако, иметь в виду, что запуск приложений в отдельном адресном пространстве требует дополнительных затрат памяти.

Активные страницы сервера снабжены встроенными средствами отслеживания состояния и пользователей. Поскольку HTTP — протокол без постоянного соединения, стандартный Web-сервер не поддерживает информацию о работе клиентов. Однако для создания динамических приложений такая информация необходима, поэтому технология ASP обеспечивает ее поддержку с помощью объектов Application и Session. Состояние приложения доступно как в контексте приложения, так и в контексте сеанса. Объект Application представляет собой хранилище информации и объектов, доступных всем пользователям приложения, — в этом смысле он хранит глобальные объекты и данные. Объект Session содержит информацию об отдельных пользователях, причем для каждого из них создается своя копия объекта Session.

Кроме того, активные страницы сервера позволяют разработчикам повторно использовать программные компоненты и агрегировать их. Например, если компонент обеспечивает 85% функциональных возможностей приложения, разработчик вправе воспользоваться функциями компонента, а значит, самостоятельно ему придется разработать лишь оставшиеся 15% необходимых функций.

Составляющие элементы ASP

ASP состоят из трех основных элементов: сценариев, объектов и компонентов. Сценарии ASP совместимы с любым языком сценариев ActiveX и содержат серверные расширения, совместимые с HTML.

Объекты управляют состоянием приложения и предоставляют доступ к формам и параметрам HTTP-сообщений. Объекты бывают двух типов: встроенные и устанавливаемые.

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

Сценарии

Сценарии ASP — это неотъемлемый элемент, необходимый для управления процессом работы страницы. По соображениям производительности и масштабируемое™ для реализации функциональных возможностей страниц следует применять не сценарии, а компоненты СОМ.

Активные страницы сервера основаны на механизме поддержки сценариев. Это позволяет им «понимать» различные языки написания сценариев, включая Microsoft Visual Basic Scripting Edition (VB Script), JScript и PERL. Разработчики могут создавать компоненты, взаимодействующие со средой выполнения сценариев, а значит, использовать новые сценарные языки.

Сценарии серверной части формируют структуру ASP. Разработчики приложений пользуются ими для обеспечения компонентов входной информацией, а также для реализации простых функций и выполнения вычислений.


Примечание Для повышения производительности и обеспечения масштабируемости приложения сложные вычисления и функции следует создавать на компилируемых языках в виде компонентов.

ASP основаны на механизме поддержки сценариев, предоставляющем создателям Web-приложений объектную модель программирования. Язык VBScript — подмножество Visual Basic — включен в ASP, чтобы разработчики, знакомые с этой моделью, могли воспользоваться ее преимуществами.

Кроме того, в типовую установку ASP входит поддержка языка JScript — стандартного языка сценариев, который «понимает» большинство современных Web- обозревателей.


Примечание JScript не является подмножеством языка Java.

Доступ к компонентам с помощью свойств и методов

ASP обращается к компонентам с помощью свойств и методов. Свойства — это объекты данных, определяющие состояние объекта. Методы — функции, действующие над свойствами.

Для примера представьте себе компонент, который преобразует значение температуры по шкале Фаренгейта в значение по шкале Цельсия и наоборот. Два его свойства отвечают за значения температуры: одно по шкале Фаренгейта (Ftemp), a другое по шкале Цельсия (Ctemp).

Разработчик должен сначала создать объект — экземпляр компонента — и задать свойство, соответствующее преобразуемой температурной шкале. Помимо свойств, компонент из нашего примера имеет следующие методы:

Создав экземпляр объекта и задав температуру, подлежащую преобразованию, можно вызвать соответствующий метод — компонент преобразует температуру и поместит результат в соответствующее свойство, которое будет доступно из ASP и, следовательно, может быть использовано в Web-приложении.

Сценарий на VBScript для данного примера выглядит примерно так:

<%

Dim CelsiusTemp

Set-objconverter = Server. CreateObject("TempConv. Converter")

objconverter.Ftemp = 67

objconverter.Conv2Cels

CelsiusTemp = objconverter.Ctemp

Response.Write "Температура " & CelsiusTemp & " градусов по шкале Цельсия."

%>

Объекты ASP

Объекты — это компоненты языка программирования, обеспечивающие выполнение основных задач. Например, они обеспечивают доступ к управляющим элементам форм и параметрам состояния приложения. Объекты ASP делятся на встроенные и устанавливаемые.

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

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

Server

Объект Server предоставляет доступ к ресурсам — методам и свойствам — сервера.

Application

Объект Application позволяет сделать какую-либо информацию доступной всем пользователям данного приложения. ASP-приложение определяется как совокупность .asp-файлов в виртуальном корне и вложенных в него каталогах. Так как с объектом Application могут совместно работать несколько пользователей, он снабжен методами lock и unlock, позволяющими избежать одновременного изменения свойств приложения.

Session

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

Web-сервер автоматически создает объект Session в начале сеанса, когда пользователь запрашивает какую-либо Web-страницу из состава приложения. Сервер уничтожает объект Session по завершении сеанса.

В объектах Session часто хранятся выбранные пользователем значения. Например, приложение может отслеживать элементы каталога продукции, которые выбрал посетитель во время «путешествия» по электронному магазину на Вашем узле.


Примечание Состояния сеанса доступны только для обозревателей, поддерживающих механизм агентов.

Request

Объект Request содержит информацию, переданную клиентским обозревателем Web-серверу в HTTP-запросе.

Response

Объект Response передает информацию клиенту.

ObjectContext

Обьект ObjectContext служит для завершения или отмены транзакции, инициированной сценарием ASP. Объект ObjectContext содержит информацию о транзакциях, а также сведения о клиенте и о состоянии клиентского подключения к серверу. Это позволяет разработчику, например, отменить ресурсоемкую транзакцию, если пользователь закрыл страницу.

Устанавливаемые объекты

При создании ASP-файлов допустимо применение встроенных ActiveX-компонентов. Эти компоненты — повторно используемые, и Вы можете работать с ними в программе на любом языке. Компоненты реализуют удобную программную модель, которую применяют и при создании собственных компонентов.

Database Access

Компонент Database Access обеспечивает доступ к информации, хранящейся в базах данных или других табличных хранилищах данных, с помощью объектов данных ActiveX (ActiveX Data Objects, ADO). Он также использует средства создания пула подключений ODBC 3.0 для повышения эффективности доступа к базе данных.

Browser Capabilities

Компонент Browser Capabilities предоставляет Вашим сценариям описание возможностей клиентского Web-обозревателя.

Когда обозреватель подключается к Web-серверу, он автоматически посылает ему клиентский заголовок-агент HTTP. Последний представляет собой ASCII- строку, идентифицирующую обозреватель и номер его версии. Компонент Browser Capabilities сравнивает этот заголовок с элементами файла Browscap.ini.

Если соответствие найдено, компонент Browser Capabilities применяет список свойств обозревателя, соответствующий пользовательскому заголовку-агенту. Если же компонент не смог найти в файле Browscap.ini соответствие полученному от клиента заголовку, он считает, что обозреватель обладает лишь стандартными свойствами.

Вы вправе добавить отдельные свойства или даже описание нового обозревателя в этот компонент, модифицировав файл Browscap.ini.

Content Rotator

Каждый раз, когда пользователь открывает или перезагружает Web-страницу, компонент Content Rotator отображает новый материал, руководствуясь информацией из файла Content Schedule.

Например, средствами этого компонента Вы можете управлять процессом вывода рекламных сообщений. Кроме того, он позволяет узнать, сколько пользователей щелкнули каждое из сообщений: установите параметр Redirect в файле Content Schedule, и информация о каждом щелчке рекламного сообщения будет записываться в журнал Web-сервера.

Content Unking

Компонент Content Linking ведет список универсальных указателей ресурсов (Uniform Resource Locator, URL) на Вашем Web-узле. Он автоматически создает и обновляет таблицу содержимого и ссылок на предыдущие и последующие Web-страницы, что прекрасно подходит для таких приложений, как интерактивные газеты и группы новостей.

File Access

Компонент File Access использует объекты FileSystemObject и TextStream для чтения и изменения информации в файлах на Вашем Web-сервере.

Компоненты ASP

Существует несколько устанавливаемых компонентов ASP, предназначенных для упрощения разработки интерактивных и динамических Web-узлов. К ним относятся компоненты File Upload, Simple Mail Transfer Protocol (SMTP) Send Mail, Network News Transfer Protocol (NNTP) Discussions, Page Counter и Permission Checker.

Компонент File Upload реализует описанный в стандарте RFC 1867 метод загрузки файлов с клиентского компьютера на Web-сервер. Этот компонент взаимодействует с тэгом <INPUT TYPE=FILE> в обозревателях Netscape, а также с мастером Web-публикации (Web Publishing wizard) и ActiveX-элементом Upload.

Компонент SMTP Send Mail позволяет снабдить Web-страницы средствами отправки сообщений электронной почты через почтовый сервер SMTP (например, поставляемый в составе Microsoft Exchange 5.0 и последующих версий).

Нечто вроде группы новостей можно организовать с помощью компонента NNTP Discussion. Этот компонент позволяет создавать как открытые, так и закрытые NNTP-конференции. Доступ к группам новостей осуществляется средствами стандартной программы просмотра новостей NNTP (например Microsoft Outlook™ Express).

Компонент Page Counter предназначен для работы в контексте Web-приложения. Его принадлежность к глобальной области видимости значительно облегчает и ускоряет реализацию счетчика посещений страницы.

Компонент Permission Checker проверяет права пользователя на доступ к файлу или странице, позволяя настроить ASP-страницы для различных типов пользователей. Например, если Web-страница содержит ссылки на страницы, доступ к которым ограничен, воспользуйтесь компонентом Permission Checker для проверки полномочий данного пользователя и уберите (или сделайте недоступными) ссылки на страницы, для доступа к которым у пользователя нет полномочий.

Создание компонентов

Серверные ActiveX-компоненты предназначены для расширения функциональных возможностей ASP и в этом смысле являются логическим развитием сценариев. В случае, когда в конструкции ASP-страницы есть периодически повторяющаяся процедура (например, реализующая бизнес-логику), приложение становится лучше масштабируемым и более целостным, если код будет реализован серверным ActiveX- компонентом, а не сценарием ActiveX.

Вы вправе написать свой компонент на любом языке, позволяющем создавать компоненты сервера автоматизации. Выбор языка зависит от множества факторов: знания языка, наличия инструментальной поддержки, производительности результирующего продукта, необходимости поддержки потоковой модели, сложности и размера кода. К языкам и продуктам, поддерживающим разработку компонентов сервера автоматизации, относятся Microsoft Visual C++, Microsoft Visual Basic и Java.

Компоненты, создаваемые для ASP, отвечают модели компонентных объектов (Component Object Model, СОМ). Они загружаются в память и предоставляют другим процессам — в частности, активным страницам сервера — свои методы и свойства.

Это, по сути, ActiveX-компоненты без пользовательского интерфейса. Разрабатывая компоненты для ASP, пользуйтесь предоставляемыми ASP интерфейсами, чтобы Ваши разработки отвечали стандарту СОМ.

Серверные ActiveX-компоненты устанавливаются и запускаются на Web-сервере. Доступ к ним возможен средствами любого Web-обозревателя.

Сервер на базе компонентов ActiveX расширяем, что позволяет разработчики создавать серверные ActiveX-компоненты различного назначения, используемые в Интернете и интрасетях.

Использование тэга Script

Текст, заключенный в тэге Script, не отображается обозревателем, а интерпретируется. Этот тэг предназначен для обозначения и клиентских, и серверных сценариев.

Клиентские сценарии не являются частью ASP и зависят от реализации языка сценариев в обозревателе. Разные обозреватели (иногда даже разные версии одного обозревателя) могут неодинаково реализовывать поддержку языков сценариев. Клиентские сценарии упомянуты здесь только для того, чтобы указать на их отличие от ASP и серверных сценариев.

Тэг Script для клиентов

Тэг Script, предназначенный для работы в обозревателях, выглядит следующим образом:

<SCRIPT LANGUAGE=XXX> <!-команды сценария -!> </SCRIPT>

Поддерживаемые языки сценариев, как и объектная модель, зависят от используемого обозревателя.

Тэг Script в ASP

Активные страницы на сервере используют тэг, имеющий небольшие отличиям. Прежде всего, он должен указывать, что сценарий следует запустить на сервере, а не передавать клиенту.

Сценарий в ASP обрамляется следующими тэгами:

<SCRIPT LANGUAGE=XXX RUNAT=SERVER> ' <!-Сценарий серверной части

-! > </SCRIPT>

Для удобства или чтобы уменьшить сложность страниц, содержащих сценарии, можно воспользоваться альтернативным, более простым тэгом для сценариев серверной части:

<% <!-Сценарий серверной части

-!> %>

Заметьте, что сценарий в данном случае работает на сервере и, следовательно, не зависит от обозревателя. Результат его работы может быть представлен пользователю нужным образом и, в частности, адаптирован к возможностям конкретного обозревателя. Сценарии ASP позволяет даже создавать сценарии клиентской части во время работы.

Упражнение

В этом упражнении Вы создадите ASP, обработаете введенную в форму информацию, используете на Web-странице элемент управления Microsoft ActiveX и определите возможности обозревателя, обращающегося к странице.


Примечание Эти упражнения содержатся также в интерактивной документации Internet Information Server (с небольшими отличиями в именах файлов и папок). Чтобы воспользоваться интерактивной версией этих упражнений, в меню Start выберите команды Microsoft Internet Information Server, Web Applications, ASP Tutorial, Creating ASP Pages, Using ActiveX Components.


Приступая к выполнению упражнения, создайте на своем сервере папку C:\LabFiles\Lab08, а затем скопируйте в нее файлы из папки Iis\Practice\Asp прилагаемого к книге компакт-диска. Эту папку следует предоставить в совместное использование для службы World Wide Web (WWW) под сетевым именем /Lab8 и разрешить для нее операции чтения/записи.

В первой части упражнения Вы сконфигурируете виртуальный каталог и настроите обозреватель.

> Конфигурирование виртуального каталога

  1. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Internet Information Server, Internet Service Manager.
  2. Раскройте узел Internet Information Server. Появится значок компьютера с именем Вашего компьютера.
  3. Раскройте значок Вашего компьютера. Появятся следующие узлы: Default FTP, Default Web, Administration Web, Default SMTP и Default NNTP.
  4. Правой кнопкой мыши щелкните значок Default Web Site. Появится контекстное меню папки.
  5. Выберите в меню команды New, Virtual Directory. Будет запущен мастер создания виртуального каталога.
  6. В текстовом поле Alias to be used to access virtual directory наберите Lab8 и нажмите кнопку Next.
  7. В текстовом поле наберите C:\Labfiles\Lab08 и нажмите кнопку Next.
  8. Убедитесь, что флажки Allow Read Access и Allow Script Access установлены.
  9. Нажмите кнопку Finish.

> Изменение уровня безопасности в Internet Explorer

  1. Запустите Internet Explorer.
  2. В меню View выберите команду Internet Options. Появится диалоговое окно Internet Options.
  3. Откройте вкладку Security. Убедитесь, что для зоны интрасети установлен средний (Medium) уровень безопасности (Safety Level).
  4. Нажмите ОК.
  5. Закройте Internet Explorer.

В следующей части упражнения Вы создадите ASP, взяв за основу простую HTML-страницу и добавив в нее сценарий.

> Создание ASP из HTML-файла

  1. В поле Address Internet Explorer наберите http://имя_компьютера/Lab8/Hello.htm (вместо имя_компьютера подставьте имя Вашего Web-сервера), чтобы открыть файл Hello.htm. Появится текст «Hello World!».
  2. В Проводнике Microsoft Windows NT откройте папку C:\Labfiles\Lab08, создайте копию файла Hello.htm и переименуйте ее в Hello.asp.
  3. Средствами Проводника снимите атрибут Read-only для всех файлов папки \Lab8.

    Примечание Если Вы не сделаете этого, то не сможете продолжить упражнение.


  4. Откройте файл Hello.asp в программе Notepad.
  5. В начале файла замените заголовок Static Hello на Active Hello.
  6. В середине файла удалите строку <FONT SIZE=7> и замените ее следующими:

    <%.For I = 3 То 7 %>

    <FONT SIZE=<%= I %»

  7. Добавьте тэг <% Next %> после строки, содержащей текст «Hello World!».
  8. Сохраните файл Hello.asp и оставьте его открытым.

    Примечание Чтобы Notepad сохранил Ваш файл с надлежащим расширением, в диалоговом окне File Save As введите полное имя файла — Hello.asp


  9. В поле Address Internet Explorer наберите http://имя_компьютера/LаЬ8/Не11о.аsр, чтобы открыть файл Hello.asp. Текст «Hello World!» будет отображен шрифтом пяти разных размеров.
  10. Правой кнопкой мыши щелкните окно обозревателя и выберите из контекстного меню команду View Source. Обратите внимание, что исходный текст в обозревателе отличается от исходного текста, находящегося на сервере.

Многие Web-узлы позволяют пользователям вводить информацию с помощью форм. В этой части упражнения Вы обработаете форму средствами ASP.

> Обработка формы средствами ASP

  1. В поле Address Internet Explorer наберите http://uмя_компьтepa/Lab8/Form.htm, чтобы открыть файл Form.htm.

     

  2. Заполните форму и нажмите кнопку Submit Query. Появится сообщение «Thank you for your order».
  3. Закройте Internet Explorer.
  4. Откройте файл C:\Labfiles\Lab08\Response.asp в программе Notepad.
  5. Поместите курсор в конец строки, содержащей тэг <!—Form Exercise—> и нажмите клавишу ENTER.
  6. Откройте файл Asp.txt, скопируйте из него приведенный ниже фрагмент кода и вставьте его в файл Response.asp:

    <%

    Title = Request. Form( "title") LastName = Request.Form("lname") If Title = "mr" Then %>

    Mr. <%= LastName %> <% ElseIf Title = "ms" Then %> Ms. <%= LastName %> <%Else %>

    <%= Request.Form("fname") & " " & LastName %> <% End If %>

  7. Сохраните файл под именем Response.asp.
  8. В поле Address Internet Explorer наберите http://uмя_компьmepa/Lab8/Form.htm, чтобы открыть файл Form.htm.
  9. Заполните форму и нажмите кнопку Submit Query. Появится сообщение «Thank you, (Mr. / Ms.) фамилия for your order».
  10. Нажмите кнопку Back, очистите форму кнопкой Reset, выберите Ms. или Mr. и нажмите кнопку Submit Query. Появится сообщение «Thank You Mr. или Ms., for your order.».
  11. Нажмите кнопку Back, очистите форму кнопкой Reset, введите имя и фамилию и нажмите кнопку Submit Query. Появится сообщение «Thank you, имя фамилия for your order.».

Теперь Вы воспользуетесь элементом управления ActiveX под названием Ad Rotator, чтобы поместить на Web-страницу рекламу. Элемент Ad Rotator предназначен для отображения последовательных изображений (этим он и отличается от элемента Content Rotator, который отображает последовательность строк).

> Добавление компонента ActiveX в активную страницу

  1. Запустите Internet Explorer и наберите в поле Address http://uмя_компьmepa/Lab8/Ad.asp, чтобы открыть файл Ad.asp. Заметьте, что рекламы на экране нет.
  2. Закройте Internet Explorer.
  3. С помощью Проводника перейдите в папку C:\Labfiles\Lab08 и откройте файл Ad.asp в редакторе Notepad.
  4. Пролистайте файл, поместите указатель в конец строки, содержащей комментарий <!—Component Exercise—>, и нажмите клавишу ENTER.
  5. Откройте файл Asp.txt, скопируйте из него приведенный ниже фрагмент кода и вставьте его в файл Ad.asp:
  6. <% Set Ad = Server.CreateObject("MSWC.Adrotator") %> <%= Ad.GetAdvertisement("adrot.txt") %>

  7. Сохраните файл Ad.asp.
  8. Откройте файл Ad.asp в Internet Explorer. Появится рекламный «щит».
  9. Нажмите кнопку Refresh.

В окне Internet Explorer появится другая реклама.

Просматривая результирующую страницу, Вы заметите, что она каждый раз содержит один из нескольких различных рекламных клипов, перечисленных в файле Adrot.txt. Они отображаются циклически в порядке их следования в этом файле.

Один из серверных объектов ActiveX, входящих в состав Internet Information Server, позволяет серверу определять возможности обозревателя, который запрашивает страницу.

> Выяснение возможностей обозревателя

  1. В поле Address Internet Explorer наберите http://uмя_компьmepa/Lab8/Вrowseca.asp, чтобы отобразить список возможностей обозревателя. Появится список сведений об обозревателе.
  2. Закройте Internet Explorer.

Резюме

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




Сайт создан в системе uCoz