Море приколов и флешек на CD Море разнообразных приколов! :: KOLBAS2003.NAROD.RU

Главная Статьи Книги Опрос Чат Гостевая книга Форум Ссылки

ASP - Где этот зверь водится?

ASP - детище Microsoft'a и, вполне естественно, что и его поддержка осуществляется Microsoft'овскими же интернет-серверами. В первую очередь Internet Information Server, правда, начиная с 3-й версии. Так что если вы работаете под IIS 3.0, то можете смело использовать в своих проектах ASP-технологию, сервер поймет. Но далеко не у всех стоит Windows NT Server. Но и это не беда.

Технологию ASP поддерживают также и Windows NT Workstation при установленном Peer Web Services (одноранговые веб-сервисы), а также и Windows 95/98 при установленном Personal Web Server'e. Возможности у них чуть скромнее, чем у IIS. Так Peer Web Services обеспечивает подключение, кажется, только до 10 клиентов, а Personal Web Server не поддерживает протокол Gopher. А в остальном, что касается ASP, возможности их почти аналогичны.

Как правило, IIS используется по своему прямому назначению, т.е. как веб-сервер, Peer Web Services на Windows NT Workstation и Personal Web Server под Windows 95/98 - для разработки и тестирования ASP-страниц.

Наверняка многие читатели хотят поэкспериментировать с ASP, и Personal Web Server (PWS) - наилучшая платформа для таких экспериментов. Все что вам нужно, так это компьютер, Windows9x или WindowsMe, и остается лишь установить PWS. Интернет вам для таких экспериментов не потребуется… Так как для большинства это актуально, то о PWS подробнее сказано в конце статьи (считайте это приложением для тех, кто решил установить себе этот сервер).

Как ASP размножается?

Точно так же, как и в случае HTML-сайтом, папка с вашим проектом будет находиться скорее всего в каталоге \wwwroot, на который будет проецироваться имя вашей машины. Только, если для запуска по умолчанию в HTML используется файл index.htm, то в ASP это будет файл default.asp.

Кроме того, в корневом каталоге вашего сайта должен находиться файл global.asa. Это файл глобального окружения вашего проекта. В нем можно задавать необходимые действия, которые должны быть выполнены при инициализации интернет-приложения, при начале новой сессии, а также при закрытии сессии или приложения.

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

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

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

При разработке ASP-проекта в MS Visual InterDev (основном средстве разработки ASP-проектов) файл global.asa создается автоматически вместе с основными файлами и папками проекта (об этом чуть позже). В начале он выглядит так (комментарии перевел я):

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

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

'Sub Session_OnStart
'** Разместите здесь свой код **
'End Sub

'имя обработчика описание
'Session_OnStart Запускается, когда пользователь в первый раз запускает
' любую страницу вашего приложения
'Session_OnEnd Запускается, когда истекает время ожидания для пользователя
' или когда он покидает приложение
'Application_OnStart Запускается, когда первая страница вашего приложения
' запускается в первый раз кем-либо из пользователей
'Application_OnEnd Запускается, как только сервер прекращает работу

</SCRIPT>
В общем и целом здесь все более-менее очевидно. Весь файл состоит из одного скрипта, выполняемого также на сервере, о чем говорит атрибут RUNAT=Server. Кстати в global.asa лучше придерживаться VB Script, так я, например, несколько раз имел разные мелкие недоразумения с JavaScript'ом , хотя причину их до конца не смог понять - просто на VB Script работало, а на JavaScript - нет (но это не всегда). Скрипт в файле global.asa может состоять и из нескольких разделов. В таком случае каждый раздел должен быть заключен в теги скрипта:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
...
</SCRIPT>

Переменные приложения и сессии можно задавать и изменять и с любых страниц приложения:

<%@ language="VBscript" %>
<html>
<head></head>
<body>
<%
Application.Lock
Application("Time") = Now
Application.Unlock
%>
</body>
</html>

и в файле global.asa

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Session_OnStart
Session("Time") = Now
End Sub

</SCRIPT>

Методы Lock и Unlock требуются в данном случае для того, чтобы не происходило накладок между различными сессиями, ведь переменные приложения могут использоваться сразу несколькими пользователями.

 

 
              
   

Комментарии: Пишите мне Rambler's Top100 Copyright ©
Хостинг от uCoz