назад | содержание | вперед

Создание проекта типа IIS Application

В Visual Basic имеется тип проекта IIS Application, который дает возможность создавать ASP-страницы. Этот тип проекта предоставляет разработчику специальный класс webciass, который оформляется в виде ActiveX Dll и встраивается в ASP-страницу, инициализируется при обращении к ней и работает на сервере. Все тонкости этого механизма Visual Basic берет на себя, предоставляя вам привычную среду для создания проектов. Таким образом, вы разрабатываете приложение, затем оно компилируется и встраивается в ASP-страницу, при этом для вас не существует ограничений VBScript, и вы можете пользоваться всеми возможностями Visual Basic при написании кода.

Рассмотрим создание проекта IIS Application на следующем простом примере. Web-сервер будет предлагать ввести данные о покупателе, принимать их, формировать на их основе HTML-документ и отправлять его обратно пользователю для подтверждения.

Создайте новый проект, выбрав в диалоговом окне New Project (рис. 19.10) значок IIS Application.

Рис. 19.10. Создание проекта типа IIS Application

Перед вами появляется окно, в котором можно добавлять к проекту HTML-шаблоны, а также элементы webitem. HTML-шаблоны— это обычные HTML-документы, которые вы сможете посылать Web-браузеру пользователя. Элементы webitem содержат шаблоны, однако, обрабатывая события и используя методы этих элементов, вы также можете формировать HTML-поток.

Назовите проект serverPage, а единственный входящий в его состав объект WebClass — Default. Задайте для свойства StateManagement объекта Default значение wcRetainInstance. Это приведет к тому, что экземпляр класса WebClass будет создаваться один раз, а не при каждом обращении Web-браузера к ASP-странице.

Добавьте в проект два шаблона HTML, воспользовавшись кнопкой Add HTML Template Webitem. Первый, на основе созданного нами ранее файла Customer.htm, предназначен для ввода информации о покупателе, второй — для отправки созданного нами HTML-документа, содержащего принятые от пользователя данные.

В окне Project выберите объект Default, перейдите в окно редактора кода данного объекта и введите следующий текст:

Option Explicit

Option Compare Text

Private Sub WebClass BeginRequest()

If Request.QueryString.Count > 0 Then

If Request.QueryString.Item(1) = "inputcustomer" Then

'записать данные в html-файл на сервере

Open "С:\Work\ServerPage\custlist.htm" For Output As #1

Print #1, "<HTML>"

Print #1, "<P аlign=сеnter>Сведения о последнем покупателе:</Р>"

With Request

Print #1, "Компания: " & .Form("txtccompany") & "<Р>"

Print #1, "Фамилия: " & .Form("txtclastname") & "<P>"

Print #1, "Имя: " & .FormC'txtcfirstname") & "<Р>"

Print #1, "Отчество: " & .Form("txtcsecondname") & "<P>"

Print #1, "Почтовый индекс: " & .Form("txtczip") & "<Р>"

Print #1, "Страна: " & .Form("txtccountry") & "<Р>"

Print #1, "Регион: " & .FormC'txtcregion") & "<P>"

Print #1, "Город: " & .Form("txtccity") & "<Р>"

Print #1, "Адрес: " & .Form("txtcaddress")

End With

Print #1, "</HTML>"

Close #1

'отправить файл клиенту

Response.Clear

CustList.WriteTemplate "custlist.htm"

End If

Else

'отправить клиенту форму для ввода

Customer.WriteTemplate

End If

End Sub

По сути дела мы описали обработку события BeginRequest, которое происходит всякий раз при обращении Web-браузера к ASP-странице. Здесь мы анализируем содержимое коллекции QueryString объекта Response. При первом обращении она пуста, и мы отправляем пользователю форму для ввода данных, вызвав метод WriteTemplate нашего HTML-шаблона.

Рассмотрим параметры, которые мы устанавливаем при передаче введенных пользователем данных Web-серверу:

default.asp?mode=inputcustomer

В приведенной строке мы определили имя ASP-страницы (default.asp), которой будет передана информация, и режим (inputcustomer), что позволит нам различить ситуацию обращения. Итак, если в коллекции QueryString объекта Response находится элемент inputcustomer, мы можем считать, что при данном обращении к ASP-странице были переданы данные, следовательно, надо их принять, сформировать HTML-документ на их основе и отправить его пользователю. Получить доступ к принятым данным можно, используя коллекцию Form. Элементы этой коллекции — наши поля ввода. Воспользуемся стандартным механизмом Visual Basic для работы с файлами и сохраним принятые данные в файле на нашем диске \\ServerPage\CustList.htm, а потом отправим его Web-браузеру пользователя с помощью HTML-шаблона custList, предварительно очистив поле Web-браузера:

Response.Clear CustList.WriteTemplate "CustList.htm"

Запустите приложение, нажав клавишу <F5>. Вам будет предложено установить режим отладки. Выберите из списка, расположенного рядом с опцией Start Component, созданный нами WebClass — Default.

Рис. 19.15. Ввод данных о покупателе в предоставленный Web-сервером шаблон

Далее потребуется создание виртуального каталога, куда будет помещена ASP-страница. Без этого не может начаться даже отладочный запуск IIS Application.

назад | содержание | вперед