prosdo.ru
добавить свой файл
1

ВВЕДЕНИЕ


Active Server Pages - это технология программирования, которая обеспечивает возможность комбинирования HTML, скриптов, и компонент для создания динамических web-приложений. Возможность встраивания в web-страницы скриптов (кода, написанного на языке программирования, например VBScript или JScript) позволяет логичным образом объединить оформление с данными полученными из различных источников, например, из баз данных.

Идеология создания современных web-приложений заключается в инкапсуляции бизнес-логики в отдельные компоненты, написанные по технологии COM. Технология ASP в данном случае является связующим звеном между этими компонентами и интерфейсом веб-приложения.

Использование Active Server Pages не требует специфичных броузеров. Все ASP-скрипты запускаются и выполняются на веб-сервере, причем броузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.

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

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


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

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

1ТЕОРИЯ

1.1Использование HTML-форм


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

Каждая страница может содержать несколько форм, поэтому необходимы средства, которые позволяли бы отличить одну форму от другой. Кроме этого, требуется сообщать форме, куда следует перейти, когда пользователь выполняет действие с формой (как правило, нажимает кнопку отправки данных). Обе задачи решаются заключением форм в следующие теги HTML:








Как видно из приведенного фрагмента, в тегах форм указываются три важных элемента: имя формы, действие и метод. Имя необходимо для обращения к форме при необходимости. Действие указывает, какой сценарий должен обрабатывать форму при выходе из формы по кнопке передачи данных, а метод определяет способ передачи данных этому сценарию. Чаще всего используются два метода:

Метод get передает все данные формы в конце строки URL. Из-за различных ограничений, связанных со спецификой языков и длиной данных, этот метод весьма применяется редко.

Метод post передает все данные формы в теле запроса. Этот метод более распространен, чем get.

1.2Тэги ASP


Для того чтобы сервер корректно воспринимал ASP-скрпт необходимо заключать его в ASP-тэги: <% (открывающий тэг) и %> (закрывающий тэг). Отдельные строки скрипта отделяются знаком конца строки.

Пример:

<%

Response.Write(“Hello ”)

Response.Write(“world!”)

‘Данный код выводит в окно браузера сообщение Hello world!

%>

1.3Передача данных методами GET, POST



Одним из методов осуществления передачи и извлечения параметров методами GET и POST является использование команды Request.

1.3.1Request


Все значения переменных, передаваемые от странице к странице, возможно получить используя функцию Request:


переменная1=Request(“переменная3”);

переменная2=Request(“переменная4”);


Где «переменная 3» и «переменная 4» это имена переменных в передающем скрипте, а «переменная 1» и «переменная 2» имена переменных в принимающем значения скрипте. Таким образом, если мы хотим передать какие либо данные от одного скрипта, нам необходимо обратиться к принимающей странице следующим образом:

адрес?перменная1=значение переменной1&перменная2=значение переменной2…



Либо предать данные с помощью полей формы.

1.4Объявление переменных


Для того чтобы объявить переменную в ASP необходимо использовать команду Dim.

Dim
var1 as Type

var1 – имя будущей переменной

Type – тип переменной (необязательный параметр). Это параметр можно не определять, так как в ASP осуществляется автоматическое преобразование переменных.

1.5Основные функции ASP


В данном разделе перечислены основные функции, которые, скорее всего, потребуются при выполнении лабораторных работ.

1.6Response.Write


Функция выводит в окно браузера содержимое передаваемой ей параметра.

Response.Write(“source”)

source – данные, выводимые в окно браузера.

Пример:

myString=”I know ASP!”

Response.Write(“Hello world! ”)

Response.Write(myString)

После выполнения на экране увидим Hello world! I know ASP!

1.7Date


Функция необходима для получения текущей даты.

string Date

Функция возвращает значение текущей даты.

Пример:

MyDate=Date

Теперь переменная MyDate будет содержать значение 24.07.2006

1.7.1Time


Функция необходима для получения текущего времени.

string Date

Функция возвращает значение текущего времени.

Пример:

MyTime=Time

Теперь MyTime будет содержать значение 22:06:04

1.7.2Split


Функция Split

array Split(string in_str, string spliter);

Функция разделяет строку in_str на подстроки, используя заданный разделитель spliter.

Пример1:

MyStr=”userYHello world!Y21.05.2006”;

MyArray=split(MyStr, "Y");

После применения функции массив MyArray будет содержать соответственно следующие значения:


MyArray[0]=user

MyArray[1]=Hello world!

MyArray[2]=21.05.2006

1.7.3+


Наряду с арифметическими функциями этот символ может выполнять функции конкатенации двух строк.

String Str1+Str2

Пример:

MyStr=”Hello”+” ”+”world”+”!”

После выполнения переменная MyStr будет содержать Hello world!

1.7.4UBound


Функция возвращает верхний индекс массива.

Integer UBound(array s_array)

s_array – массив, верхний индекс которого необходимо получить. Функция возвращает число типа Integer.

Пример:

Dim MyArray(30) As Integer

MyIndex=UBound(MyArray)

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

1.7.5Trim


Функция удаляет лишние пробелы по краям строкового выражения

string Trim(string s_string)

s_string – строковое выражение, в котором необходимо удалить лишние пробелы по краям.

Пример:

MyString=” Hello world! ”

NewMyString=Trim(MyString)

После выполнения кода, переменная MyString будет содержать значение ”Hello world!”.


1.8Функции и выражения для работы с файлами


При осуществлении открытия фала в одном из режимов мы будем работать с объектом типа FileSystemObject, который обладает всеми необходимыми методами для работы с фалами.

1.8.1CreateObject


Эта команда используется для создания объекта. В нашем случае с её помощью мы будем создавать объект типа FileSystemObject и использовать его для работы с файлами.

Set objNew = CreateObject("ObjectType")

objNew – имя создаваемого объекта

ObjectType – тип создаваемого объекта. В нашем случае это будет Scripting.FileSystemObject

Пример:


Set objFSO = CreateObject("Scripting.FileSystemObject")

После выполнения будет создан объект типа Scripting.FileSystemObject с именем objFSO

1.8.2OpenTextFile


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

Set objTextFile = objNew.OpenTextFile(string Filename, integer Mode)

objTextFile ­– переменная, которая будет содержать дескриптор открытого файла

objNew – созданный ранее объект типа FileSystemObject

Filename – имя открываемого файла. При этом необходимо указывать полный путь к файлу. Например: «с:\Web\MySite\Docs\File.txt»

Mode – режим открытия файла. В нашем случае будем использовать 3 режима:

  • 1 – чтение

  • 2 – запись

  • 8 – добавление в конец файла

Пример:

Set objMFD = CreateObject("Scripting.FileSystemObject")

Set objNewTextFile = objMFD.OpenTextFile(“с:\MySite\Docs\File.txt”, 1)

После выполнения кода для чтения будет открыт файл new_file.txt.

1.8.3AtEndOfStream


Функция возвращает TRUE при достижении конца файла.

Boolean objNewTextFile.AtEndOfStream

objNewTextFile – дескриптор файла, открытого в режиме чтения

Пример:

i=0

Set objMFD = CreateObject("Scripting.FileSystemObject")

Set objNewTextFile = objMFD.OpenTextFile(“new_file.txt”, 1)

Do While objNewTextFile.AtEndOfStream <> TRUE

sRead = objTextFile.Read(1)

Loop

При выполнении этого кода в переменную sRead будет читаться по 1 байту, пока не будет достигнут конец файла

1.8.4ReadAll


Функция осуществляет чтение из файла всего содержимого.

String objNewTextFile.ReadAll

objNewTextFile – дескриптор открытого файла


Пример:

Пусть дескриптор objTextFile указывает на существующий файл, открытый на чтение, который содержит строку Hello world!

sReadAll = objTextFile.ReadAll

После выполнения чтения файла sReadAll ,будет содержать Hello world!

1.8.5Write


Функция записывает в файл переданные ей данные

objNewTextFile.Write(string Source)

Source – данные, записываемые в файл

objNewTextFile – дескриптор открытого на запись файла

Пример:

Пусть objTextFile – дескриптор открытого на запись файла

MyStr=”world!”

objTextFile.Write(“Hello ”)

objTextFile.Write(MyStr)

После выполнения файл будет содержать Hello world!

1.8.6WriteLine


Функция является аналогом Write с тем лишь различием, что она записывает строку, т.е. в конце записываемого фрагмента добавляется символ конца строки.

1.8.7Сlose


Функция закрывает открытый файл.

objNewTextFile.Close

objNewTextFile – дескриптор открытого ранее файла

Пример:

objTextFile.Close

1.9Регулярные выражения


Регулярные выражения лежат в основе всех современных технологий поиска по шаблону. Регулярное выражение представляет собой последовательность простых и служебных символов, описывающих искомый текст (аналогия - strcmp в языке C++). Иногда регулярные выражения бывают простыми и понятными (например, слово dog), но часто в них присутствуют служебные символы, обладающие особым смыслом в синтаксисе регулярных выражений.

1.9.1Replace


Функция Replace


string Replace
(string in_str, string str1, string str2);

in_str – строка, в которой следует произвести замену

str1 – заменяемая подстрока

str2 – та, на которую заменяем

Пример:

МуStr=”I have one gun”

NewMyStr=Replace(MyStr, “оne gun”, “any no gun”)

После выполнения функции переменная NewMyStr будет содержать значение «I have no any gun».

1.9.2InStr


Функция производит поиск подстроки в строке и если таковая имеется - возвращает TRUE в ином случае FALSE.

Boolean InStr(str_src, str_srch)

str_src – где искать

str_srch – «объект» поиска

Пример:

SearchStr=”Hello world!\n”;

If InStr(SearchString, “llo”) Then

Reaponse.Write(“String found!”)

End if

В результате выполнения этого кода на экране вы увидите текст «String found!», так как подстрока будет найдена в строке.




2ОПИСАНИЕ ЛАБОРАТОРНЫХ РАБОТ

2.1Лабораторная работа №1

Тема: Извлечение данных из HTML–формы

2.1.1Задание


Разработать HTML-код, который при вызове в окно Web-браузера выводит произвольную HTML-страницу с HTML-формой. На форме должны использоваться как минимум пять различных типов элементов форм, а также кнопка Submit («Отправить»). Например, форма может содержать поле ввода текта (text field), кнопку-флажок (checkbox), радио-кнопки (radio buttons), список (scrolling list), много-строчное поле ввода текста (text area) и т.д.

2.1.2Ход выполнения работы


Реализуем скрипт, осуществляющий передачу и извлечение данных формы, через один единственный файл index.asp.

Итак, создадим скрипт, выводящий на экран форму. В нашем случае это форма со следующими элементами: поле ввода текста (text field), кнопку-флажок (checkbox), радио-кнопки (radio buttons), список (scrolling list) и многострочное поле ввода текста (text area).

Для того чтобы разграничить процессы первой загрузки страницы и процесс вывода значений полей формы, необходимо ввести какой либо параметр, по которому скрипт будет определять, что необходимо отображать данные, переданные формой. Такой параметр мы будем передавать через скрытое поле (). В нашем случае после нажатия кнопки «Отправить» на страницу передастся переменная act со значением «do». После того, как произведена проверка передачи данных, необходимо получить все значения полей формы с помощью функции Request и вывести их в нужном виде вместе с именами полей.

2.2Лабораторная работа №2

Тема: Использование регулярных выражений в ASP

2.2.1Задание


Разработать программу преобразования текстовой информации.

Пояснения:

1) Входные данные должны быть преобразованы таким образом, чтобы все встреченные ссылки на Web- и FTP-документы, а также e-mail адреса, были заменены на соответствующие им ссылки в формате HTML, например:

До: http://host.com/doc.html

После: http://host.com/doc.html

До: ftp://host.com/pub/

После: ftp://host.com/pub/

До: user1@host.com

После: user1@host.com

2) Входные данные, не содержащие Internet-ссылок, должны быть переданы в выходной поток без изменений.

3) Входные данные должны извлекаться из полей формы или из файлов, имена которых указываются пользователем. Весь обработанный текст должен выводиться пользователю в html-формате.

2.2.2Ход выполнения работы


В качестве одного из вариантов решения задачи предлагается следующий обобщенный алгоритм.

Шаг 1. Отображение на html-странице формы с полями для ввода текста и имени файла, а также кнопкой «Обработать».

Шаг 2. При нажатии на кнопку, скрипт вызывается повторно, получив в качестве значения параметра введенный текст или имя загружаемого файла.

Шаг 3. Текст из многострочного поля или файла обрабатывается соответствующим образом и выводится в конец страницы.

Для работы с файлами потребуется использование рассмотренных ранее функций CreateObject
, OpenTextFile, WriteLine и Write.

2.3Лабораторная работа №3

Тема: Разработка приложения для поддержки гостевой книги

2.3.1Задание


Разработать программу, реализующую функции гостевой книги.

Пояснения:

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

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

3) При отсутствии данных в полях «Автор» или «Сообщение», программа должна выдавать пользователю соответствующие предупреждения.

2.3.2Ход выполнения работы


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



Рис. 1. Обобщенный алгоритм работы приложения «Гостевая книга»

2.4Лабораторная работа №4

Тема: Разработка программы для подсчета количества слов

2.4.1Задание


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

2.4.2Ход выполнения работы


В данном разделе рассмотрен один из возможных вариантов решения данной задачи.

Пусть скрипт, осуществляющий подсчёт количества слов в тексте, хранится в файле index.asp. За слово примем последовательность символов, отделённую от других групп символов пробелом.

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


Для того чтобы разграничить процессы первой загрузки страницы и процесс обработки данных, необходимо ввести какой либо параметр, по которому скрипт будет определять, что необходимо обработать данные. Алгоритм скрипта должен проверить, каков источник входной информации (файл или многострочное текстовое поле)? В обоих случаях, для удобства дальнейшей работы, можно занести всю входную информацию во временную переменную. В случае источника – файла, следует открыть файл на чтение и произвести из него загрузку данных. Затем можно перенести всю входную информацию из строковой переменной в массив.

Перед тем как начать подсчёт слов, необходимо обработать каждый элемент массива, для приведения его к нужному нам виду. Обработка подразумевает удаление из каждого элемента массива «ненужных» символов (точка, запятая, восклицательный и вопросительный знаки, и т.д.). Для этого можно воспользоваться функцией Replace.

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

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