Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

ВСТРОЕННЫЕ ОБЪЕКТЫ ASP

pony (pony@xakep.ru)

Спецвыпуск Xakep, номер #027, стр. 027-058-3


<% for i=1 to Request.Form("myForm").Count

Response.Write(Request.Form("myForm ") (i) & "<br>")

next %>

позволит тебе вывести все поля формы myForm. Поскольку Request.Form - это коллекция, при организации циклов можно использовать конструкции for each.

Request.QueryString - тоже коллекция. Открывает доступ к параметрам, переданным с помощью метода GET или просто в строке запроса (это то, что идет после знака вопрос в адресе http://www1.e-shop.ru/actions/item.asp?code_cat=COF12753). В нашем случае

<% Response.Write(Request.QueryString("code_cat")) %>

выдаст COF12753.

Свойство у объекта Request только одно - TotalBytes. Request.TotalBytes выдаст тебе полное количество байт, полученных от клиента в результате запроса.

ОБЪЕКТ SESSION

Ты можешь использовать данный объект для хранения информации о пользовательских сессиях. Переменные, хранящиеся в объекте Session, не уничтожаются, когда пользователь осуществляет переходы между страницами в приложении, а хранятся на протяжении существования данной сессии. Веб-сервер автоматически создает объект Session, когда страница приложения востребуется пользователем, который до сих пор не имел сессии (когда он первый раз зашел на страницу). Сервер разрушает объект Session, когда время существования сессии истекает (обычно 20 минут, устанавливается с помощью свойства Session.TimeOut) или же сессия разрушается принудительно (с помощью метода Session.Abandon). Установить значение в переменной сессии легко:

<% Sesion("se_myvar") = "mycontent" %>.

Так же легко переменной присвоить значение из сессии:

<% myvar = Sesion("se_myvar") %>.

Совет: чтобы не путаться, называй переменные в сессии с каким-нибудь префиксом.

С помощью коллекции Session.Contents можно легко получить доступ ко всем элементам сессии:

<% for each sessitem in Session.Contents

Response.Write(sessitem & " : " & Session.Contents(sessitem) & "<br>")

next %>.

ОБЪЕКТ APPLICATION

Ты можешь использовать данный метод для того, чтобы сделать доступной информацию между всеми пользователями данного приложения (приложение - это все .asp-файлы в виртуальной директории и всех ее поддиректориях). Из-за того, что объект Application может быть доступен более чем одному пользователю, то в нем предусмотрено два метода - Lock и Unlock (заблокировать и разблокировать) для того, чтобы быть уверенным, что сразу несколько пользователей не смогут попытаться изменять свойства одновременно. Запись информации в Application может быть сделана так:

<% Application.Lock

Application("VisitsCount") = Application("VisitsCount") + 1

Application.Unlock %>

А в остальном объект Application очень похож на объект Sesion (у него, например, есть коллекция Application.Contents).

На практике не часто приходится применять объект Application. При не очень большой загрузке сервера его, например, можно использовать для кэширования результатов запросов к базе данных (особенно если база данных медленная - типа mdb) или простенького счетчика посещений.

ОБЪЕКТ SERVER

Очень нужный объект. Именно он дает возможность функционального расширения IIS как web-сервера. И самый важный его метод - Server.CreateObject. Код

Назад на стр. 027-058-2  Содержание  Вперед на стр. 027-058-4