Asp объект server

Содержание

Объектная модель ASP.NET

Доступность Web-страниц

Технология ASP.NET обеспечивает высокую доступность созданных в ее рамках Web-страниц, благодаря применению эффективной системы обработки ошибок, устранения «утечек памяти» и взаимных блокировок. Для этого задается максимальное количество запросов и устанавливаются значения параметров для контроля объема используемой памяти. Конфигурационная информация сохраняется в файле Web.config. При достижении приложением ASP.NET предельного значения какого-либо установленного параметра создается новый экземпляр Web-страницы. Запросы перенаправляются к новому экземпляру Web-страницы, а старый экземпляр уничтожается по окончании обработки всех поступивших к нему запросов.

ASP.NET предоставляет новую объектно-ориентированную модель разработки Web-приложений. Сами ASP.NET-страницы являются объектами классов. Можно создавать программный код с возможностью его повторного использования классами. Эти классы можно использовать для создания экземпляров объектов.

Объектная модель — это иерархия объектов, предоставляющих разработчикам определенные возможности. В ASP.NET используется новая структура Web-страниц, которая отличается от структуры ASP-страниц и обеспечивает поддержку объектной модели для сохранения содержимого ASP.NET-страницы. Добавлен новый класс элементов управления — серверные элементы управления. Можно добавлять собственные комментарии и связывать эти данные с серверными элементами управления. Для оформления Web-страниц имеются наборы директив, которые предназначены для установки параметров. Например, параметры TraceContext и isEnabled позволяют, соответственно, включить и отключить механизм отслеживания Web-запросов.

ASP.NET определяет шесть внутренних объектов структуры страниц:

Эти объекты встроены в модель ASP.NET-страниц и готовы к использованию.

В объекте application хранятся данные, которые будут доступны всем пользователям, одновременно работающим с Web-приложением. Данные о сеансе работы каждого отдельного пользователя сохраняет объект session. Объект application используется для хранения глобальных переменных, которые содержат информацию, общедоступную для всех пользователей Web-приложения, например приветственное сообщение или индекс посещения Web-страницы. Этот объект представляет собой коллекцию разнородных элементов. Пользователи совместно используют объекты Web-приложения, поэтому требуется гарантировать, что несколько пользователей не смогут одновременно изменять переменные, хранимые в объекте application. Для блокирования содержимого коллекции объектов от изменения применяется метод Lock, для разблокирования — метод Unlock.

С помощью объекта ObjectContext выполняется фиксация или откат транзакций, управляемых MTS. Транзакции могут быть инициированы со страницы ASP.NET. Методы SetComplete и SetAbort объекта ObjectContext используются, соответственно, для фиксации и отката транзакций.

В объекте request сохраняется информация, отправляемая броузером клиента на сервер в HTTP-запросе. После обработки запроса с помощью объекта request пользователю отправляется ответная информация. Объект server позволяет получить доступ к свойствам и методам Web-сервера. С помощью метода Server.createobject можно создать экземпляр объекта server.

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

Каждый из внутренних объектов ASP.NET обладает набором методов и коллекций для управления функциональными возможностями этого объекта. Назначение и возможности внутренних объектов технологий ASP и ASP.NET практически идентичны.

Вопросы промежуточного контроля третьего раздела

  1. Назовите фундаментальные основы ASP.NET;
  2. Архитектура ASP.NET;
  3. История создания ASP.NET;
  4. Назовите модель программирования ASP.NET
  5. Возможности ASP.NET.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8807 — | 7523 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Asp объект server

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

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

Принципы функционирования

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

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

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

Описание синтаксиса

ASP-код, который нужно выполнить на сервере, размещается внутри специальных тегов . Так как данный код обрабатывается на сервере, он не доступен пользователю. Сам код может быть написан с использованием Visual Basic Scripting Edition (VBScript) или JScript (JavaScript). Технология ASP позволяет использовать и другие языки программирования. По сути, нужно говорить не о синтаксисе ASP, а о том языке, который используется для написания ASP-кода. Синтаксис VBScript намного проще других языков, поэтому новичку будет легко в нем разобраться.

Объекты и компоненты

VBScript не является полнофункциональным языком программирования и использования встроенных в него средств явно недостаточно. Поэтому в ASP-страницах используются специальные объекты и компоненты ActiveX.

Существует набор «встроенных» объектов, которые инициализируются и предоставляются ASP-скрипту автоматически при начале обработки. Эти объекты обеспечивают доступ к основным «жизненно важным» функциям:

  • Объект Application позволяет создавать переменные, доступные всем пользователям Web-приложения.
  • Объект Session позволяет сохранять данные, связанные с отдельным пользователем.
  • Объект Request предоставляет параметры CGI-запроса, отправленные методом POST 99или GET.
  • Объект Response предоставляет методы для добавления информации, а также для формирования заголовков страницы ответа Web-сервера.
  • Объект Server содержит множество различных методов, одним из которых является метод CreateObject, позволяющий создавать экземпляры компонент ActiveX.

В отличие от встроенных ASP-объектов, ASP-компоненты явно необходимо создавать в коде скрипта. Существует огромное количество ActiveX-компонент, которые можно использовать в ASP-страницах, причем большинство из них распространяются бесплатно. Более того, разработчик может сам создавать ActiveX-компоненты в любой среде программирования, поддерживающей COM-технологию, например, Visual C++ или Visual Basic.

Следует уделить особое внимание объектам ADO (ActiveX Data Objects), которые представляют собой мощные интегрированные средства для создания приложений для работы с БД. Компоненты ADO обеспечивают быстрый и удобный интерфейс к БД на самом высоком уровне, при этом сохраняется переносимость разрабатываемых приложений для работы с другими БД. Использование компонент ADO значительно упрощает работу программиста, ему остается лишь правильно составить SQL-запросы к БД и позаботиться о выводе результатов.

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

Средства разработки

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

Microsoft Visual InterDev 6.0 (входящий в состав Microsoft Visual Studio) является одним из лучших средств, которое позволяет не только быстро и эффективно создавать ASP-код, но и осуществлять расширенную отладку кода. Основные особенности этого продукта:

  • Просмотр списка используемых объектов, и возможность быстрого написания кода.
  • Подсветка синтаксиса кода (VBScript и JScript).
  • Автоматическое формирование содержимого global.asa.
  • При запуске в режиме отладки InterDev автоматически настраивает Web-сервер (IIS) в нужный режим, а по окончании отладки восстанавливает настройки.
  • Возможность установки точек прерывания (breakpoints).
  • Просмотр значений переменных (watches) и списка вызванных процедур (call stack).

Существуют также и другие специализированные редакторы, позволяющие разрабатывать ASP-приложения, например, Home Site 4.5, Macromedia UltraDev 4.0 или ASP Express. Однако эти средства не полностью охватывают возможности Visual InterDev.

Новые возможности в IIS 5.0

Последняя версия Web-сервера Internet Information Server (IIS) 5.0 значительно усовершенствована, благодаря чему повышена надежность и производительность ASP-приложений. Встроенные объекты ASP в Windows 2000 обладают новыми методами, которые расширяют возможности разработчика.

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

В новой версии ядра управления сценариями Script Engine из состава Windows 2000 появились новые мощные средства поддержки языков VBScript и JScript. В сценариях на VBScript теперь можно пользоваться средствами проверки и разбора сложных выражений, а также создавать классы.

Средства доступа к данным также претерпели значительные изменения — теперь в составе ОС поставляется ядро MDAC 2.5, которое, в частности, обеспечивает интеграцию со средствами XML.

Поддержка других языков программирования

Наравне с Visual Basic Scripting Edition (VBScript), IIS поддерживает обработку JScript (JavaScript). Вы можете использовать все те же объекты, при этом меняется только синтаксис связующих конструкций.

ASP. Основы. Объекты и компоненты. Доступ к базам данных

Dynamic HTML представляет собой основное средство программирования клиента для Microsoft Internet Explorer 4.0 и выше, но такие программы просмотра Web, как Netscape Navigator, не поддерживают Dynamic HTML. На самом деле очень малая часть функциональности клиентской части, поддерживаемой различными программами просмотра, может рассматриваться как действительно кросс-платформенная.

Если Вы хотите разработать Интернет-узел, открытый для доступа самым различным программам просмотра, то должны перенести программирование с клиента на сервер. Такую возможность предоставляют Microsoft ASP (Active Server Pages — активные серверные страницы). По сути ASP не что иное, как сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML-текст. Это ключевая особенность ASP — клиент никогда не видит вашего кода, а только результирующий HTML, который воспринимает любая программа просмотра.

Листинг 4.1 демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now — функция VBScript, возвращающая текущий момент времени и дату. Если текущий час меньше 12, то приветствие задается в форме «Доброе утро!» От полудня до шести вечера сообщение имеет вид «Добрый день!», а после шести — «Добрый вечер!»

Листинг 4.1.Простой пример ASP.

Simple ASP Example

11 And Hour(Now) 17 Then

strGreeting = «Добрый вечер!»

Обратите внимание на код в листинге, окруженный специальными символами: угловыми скобками и знаками процента ( ). Такие символы означают, что это серверный код, который выполняется перед тем, как страница будет на самом деле послана программе просмотра. Если бы Вы посмотрели в Internet Explorer на результирующий HTML-текст, то увидели бы следующее (в предположении, что сейчас еще не вечер, но уже не утро):

Simple ASP Example

В этом-то и состоит суть ASP. Результат исполнения кода — обыкновенный HTML! Эту страницу можно просматривать любой программой просмотра: не только Internet Explorer, но и, например, Netscape Navigator. Иными словами, ASP предоставляет разработчику подлинную платформенную независимость

У представленного кода есть еще несколько особенностей. Обратите внимание на самую верхнюю строчку — она определяет, на каком языке написан сценарий на данной странице:

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

А теперь обратите внимание на ту строку, где и происходит генерация HTML-текста. Здесь для вывода приветствия используется переменная:

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

Объекты и компоненты.На самом простом уровне создание ASP-страницы — это ни что иное, как написание серверного кода для получения ожидаемого результата. Но VBScript не является полнофункциональным языком и, как только Вы приступаете к построению более сложных страниц, его выразительных средств начинает не хватать. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы. Собственно говоря, в VBScript отсутствуют какие-либо встроенные средства доступа к каким бы то ни было внешним источникам данных. Так как же в таком случае при помощи ASP выполняются такие сложные действия, как доступ к данным? Ответ будет таким: нужно дополнить VBScript объектами и компонентами ASP.

ASP-объекты и компоненты — это не что иное, как компоненты ActiveX, подобные обычным DLL ActiveX, с которыми Вы наверняка работали в Microsoft Visual Basic. Различие между объектами и компонентами ASP состоит в том, каким образом они появляются в программе. ASP-объекты — это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server. А вот ASP-компоненты представляют собой DLL, существующие вне структуры ASP. Эти компоненты могут быть написаны на любом языке, а некоторые по­лезные ASP-компоненты просто поставляются в комплекте с Visual InterDev. ASP-компо­ненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.

Файл GLOBAL.ASA.Одна из главных трудностей разработчика для Интернета, независимо от того, какую технологию он использует, состоит в том, как сложно создать в Интернете настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой по сути лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе. Коренная проблема для всех Web-приложений такова: как показать, что это именно приложение?

Определить приложение в среде Microsoft Windows довольно просто. Приложение запуска­ется двойным щелчком значка и завершается, когда в меню File выбран пункт Exit. В проме­жутке между двумя этими событиями данные хранятся в переменных. Но для Интернет-при­ложений это не так. Как определить, когда приложение начинается, а когда заканчивается? Можно сказать, что приложение начало работу, если пользователь зашел на узел и просмат­ривает одну из его страниц. Но что если он переходит к другому узлу, а через пять минут возвращается? Приложение все еще активно? А если пользователь отсутствовал час или два?

Проблема определения моментов запуска и завершения приложения оказывает серьезное влияние на правильное управление переменными и последовательностью выполнения. К счастью, ASP предлагает решение. Оно состоит в том, что для определения начала и завер­шения — как всего приложения, так и отдельных пользовательских сессий — используется специальный файл под названием GLOBAL.ASA. На этот файл возложено реагирование на четыре ключевых события узла: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии). В листинге 4.2 приведен типичный файл GLOBAL.ASA.

Листинг 4.2.Файл GLOBAL.ASA.

Для обозначения разделов сценария GLOBAL.ASA содержит теги

Хотя GLOBAL.ASA отмечает начало и завершение приложения при помощи событий, оста­ется неясным, что же все-таки составляет собственно приложение. Одна из рабочих форму­лировок, предложенная Microsoft, определяет Интернет-приложение как виртуальный ката­лог со всеми его файлами. Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.

Согласно этому определению с приложением одновременно могут работать несколько про­грамм просмотра. Но событие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога. Когда затем страницы из этого ката­лога запрашивают другие пользователи, возбуждается только событие Session_OnStart.

В то время как приложение может относиться к нескольким программам просмотра, обра­щающимся к одному и тому же множеству Web-страниц, сессия касается какой-то одной программы просмотра, обращающейся к тем же Web-страницам. Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога. Если же пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd. Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.

В качестве примера рассмотрим следующий сценарий. Два пользователя намереваются посе­тить на Web-узле приложение Magazine. Пользователь 1 оказывается проворнее и быст­ренько запрашивает Web-страницу DEFAULT.ASP. Тут же возбуждаются события Application_OnStart и Session_OnStart. Буквально пятью минутами позже к приложению обращается пользователь 2. Поскольку пользователь 1 как-то проявлял себя в течение последних 20 минут, приложение Magazine активно. Следовательно, возбуждается только событие Session_OnStart, сигнализируя о начале новой сессии. Кроме того, теперь для завершения приложения необходимо, чтобы завершились обе сессии.

В течение следующих 15 минут пользователь 1 не запрашивает ни­каких страниц приложе­ния Magazine. Поскольку он не проявлял активности на протяжении 20 минут, ASP приходит к выводу, что пользователь 1 закончил свою работу с приложением, и возбуждает событие Session_OnEnd. Но приложение все еще активно, поскольку в течение последних 20 минут к нему обращался пользователь 2.

Пользователь 2 работает с приложением еще час, то и дело запрашивая новые Web-страницы. Но в конце концов он отключается, а через 20 минут после того, как он покинул узел (точнее, в последний раз запросил Web-страницу приложения), возбуждается событие Session_OnEnd. Поскольку пользователь 2 был последним пользователем данного приложения, оно завершается, и возбуждается событие Application_OnEnd.

В ASP есть несколько встроенных объектов, которые доступны разработчику. Эти объекты помогают управлять многими вещами: от переменных, до передачи форм. Работать с ними легко, они вызываются из кода напрямую без какого-то особого синтаксиса.

Объект Application.Объект Application (приложение) позволяет создавать переменные приложения (application variables) — переменные, доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога.

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

Листинг 4.3.Объект Application.

Эта страница последний раз посещалась:

Создание переменной приложения сводится к адресации объекта Application именем новой переменной, которую вы хотите создать. Например, следующий код создает новую переменную приложения с именем Company и присваивает ей значение NewTech.

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

Поскольку такие переменные доступны нескольким пользователям одновременно, вы не сможете гарантировать, что два пользователя не попытаются одновременно присвоить одной и той же переменной разные значения. Для разрешения подобных коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, а не только переменную, вы хотите изменить, поэтому сразу же после изменения значения переменной разблокируйте объект:

Несмотря на то, что переменные приложения пригодны для временного хранения данных, их нельзя использовать для долговременного хранения. Все данные в переменных приложения уничтожаются, когда происходит событие Application_OnEnd. Так что, если вы хотите, чтобы они сохранились после завершения приложения, позаботьтесь о их переносе в файл или базу данных.

Объект Session.Зачастую разработчиков меньше интересуют данные, совместно используемые несколькими пользователями, зато гораздо больше — данные, связанные с конкретным пользователем. ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables).

Листинг 4.4 демонстрирует, как определить несколько переменных сессии в файле GLOBAL.ASA. Само по себе их определение так же просто, как и в случае переменных приложения. Все, что нужно сделать — это адресовать объект Session именем переменной, которую вы хотите создать. Основное различие между переменными этих объектов — их области видимости. Переменные сессии предназначаются для одного пользователя и живут, пока пользователь поддерживает сессию. Как только в течение 20 минут (по умолчанию) пользователь не обращается к страницам данного виртуального каталога, данные пропадают.

Илон Маск рекомендует:  Переливы прозрачности. Плавные изменения свойств.

Листинг 4-..Создание переменных сессии.

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

Ранее мы определили Интернет-приложение как лишенные статуса транзакции между Web-сервером и программой просмотра. Как же тогда ASP запоминает переменные сессии для каждого пользователя приложения? Ответ будет таким: эти переменные сохраняются на сервере для каждого клиента. Программа просмотра получает от сервера уникальный идентификатор, позволяющий определить, какой набор переменных кому принадлежит. Клиент этот идентификатор (Globally Unique Identifier, GUID) сохраняет, а впоследствии посылает серверу и получает именно ему предназначенные данные. Таким образом каждый клиент может иметь свой набор данных в каждом Интернет-приложении.

Осталось сказать, что для установки или считывания впемени жизни сессии (в минутах) применяется свойство Timeout объекта Session:

Объект Request.Для передачи данные клиенту создается Web-страница, а для передачи данных в обратном направлении программа просмотра использует отправку формы (form submission). В форме содержатся текстовые поля, переключатели и т.п. Клиент размещает введенные данные в этих полях и пересылает пакет серверу. Процессом передачи формы управляют два атрибута тега

Элемент формы с типом SUBMIT — это кнопка, нажатие которой пользователем заставляет программу просмотра упаковать данные формы и отправить их. Формат пересылки данных определен строго и сервер знает, чего ожидать от клиента. Данные имеют вид пар Поле=Значение,отсылаемых серверу в формате открытого текста. Если в предыдущем примере ввести в поле Name NewTech и info@newtech.com в поле Email, то сценарию DATA.ASP будет послан следующий текст:

На сервере эти данные можно вновь разобрать по полям и использовать в любых целях. Вот тут-то и нужен объект Request. Он используется в ASP для разбора полученных от клиента данных. Для работы с объектом Request просто сообщите ему имя поля, значение которого хотите получить, и объект вернет вам это значение. Например, следующий код вернет вам значение поля Name:

Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию. Если для отправки данных используется метод GET или сценарий вызывается с передачей параметров прямо в гиперссылке

то для разбота данных применяют свойство Request.QueryString, который работает так же, как Request.Form. Следующий фрагмент кода вернет значение поля Name из гиперссылки:

Другое свойство — Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра. А листинг 4.5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.

Листинг 4.5.Определение компьютера пользователя.

Вы вошли с компьютера

Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.

Объект Response.Этот объект управляет содержимым страницы, которую ASP возвращает программе просмотра. Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response. Так что следующие две строки кода эквивалентны:

Поскольку объект Response используется очень часто, такое сокращение оправдано.

Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти. Рассмотрим такой фрагмент кода, показывающий текущее время и дату:

Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно. В листинге 4.6 приведена исправленная версия примера, устаревающая уже в момент загрузки.

Листинг 4.6.Страница, устаревающая уже в момент загрузки.

Forcing a Page to Expire

Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:

Объект Server.Объект Server (сервер) представляет собой в некотором роде свалку — в том смысле, что предоставляемые им функции никак не связаны между собой, за тем исключением, что все они полезны разработчику для Интернета. Пожалуй, самая важная из всех функций объекта Server — это метод CreateObject, который создает экземпляр компонента ActiveX. Причем это может быть как встроенный компонент, входящий в комплект поставки, так и тот, который написали Вы сами на любом языке. В любом случае использование компонента ActiveX на сервере требует вызова метода CreateObject.

Аргументом метода CreateObject служит ProgID (программный идентификатор) требуемого компонента ActiveX. ProgID — это содержательное имя компонента, такое как Excel.Sheet или Word.Basic. Следующая строчка показывает, как при помощи CreateObject создать экземпляр компонента с ProgID Excel.Sheet.

Set MyObject = Server.CreateObject(«Excel.Sheet»)

Другим полезным методом объекта Server является MapPath, возвращающий фактический путь, соответствующий заданному виртуальному каталогу.

Компоненты ASP — это на самом деле просто компоненты ActiveX, наподобие тех, что Вы можете сами создать на Visual Basic или Visual C++. Но эти компоненты написаны Microsoft и поставляются вместе с Visual InterDev. Они предназначены для выполнения полезных для Web-узлов задач общего характера, включая доступ к данным. Создать их на своей странице Вы можете при помощи метода CreateObject объекта Server, а как только они созданы, смело обращайтесь к их свойствам и методам для выполнения нужных Вам задач.

Компонент ActiveX Data Objects.Самым полезным изо всех компонентов ASP следует признать компонент доступа к базам данных, называемый также ActiveX Data Objects, или сокращенно ADO. Он и содержащиеся в нем объекты применяются для чтения и записи данных в источники данных ODBC при публикации в Web информации из баз данных.

Объект Connection (подсоединение) создается методом CreateObject объекта Server, и ссылка на него помещается в переменную. Когда объект создан, его можно использовать для открытия подсоединения к любому источнику данных ODBC. Следующий фрагмент кода устанавливает подсоединение к источнику данных ODBC с названием Publications:

‘ Создаем объект Connection

Set objConnection = Server.CreateObject(«ADODB.Connection»)

‘ Открываем подсоединение к источнику данных

objConnection.Open «Publications», «sa», «» %>

Здесь objConnection — переменная для объектной ссылки на экземпляр объекта Connection. Метод Open устанавливает подсоединение, принимая в качестве аргументов имя источника данных, идентификатор пользователя и пароль.

Когда подсоединение установлено, получать информацию из источника данных можно при помощи объекта Recordset (набор записей). Этот объект умеет выполнять оператор SELECT языка SQL и возвращать набор записей, удовлетворяющих этому запросу. Как и объект Connection, Recordset создается методом CreateObject. В следующем примере программа выполняет оператор SELECT над источником данных, представленным переменной objConnection:

После того, как записи получены, для передвижения по ним можно обращаться к методам MoveFirst, MoveLast, MoveNext и MovePrevious. Затем метод Write объекта Response помещает данные на Web-страницу, которая и посылается программе просмотра. В листинге 4.7 приведен полный пример ASP-страницы, которая строит список пользователей, со­держащихся в источнике данных Data.

Листинг 4.7.Построение списка при помощи ADO.

Одна из основных задач в управляемом данными Web-приложении — управление информацией в объекте Recordset. Очень часто простой запрос возвращает гораздо больше данных, чем имеет смысл показывать. Давайте, например, посмотрим, что происходит, когда Вы обращаетесь к какой-либо поисковой системе в Интернете. Поисковая машина, получив ключевое слово, возвращает ссылки на узлы, где это ключевое слово встречается. Но зачастую обнаруживаются тысячи узлов, содержащих данное ключевое слово. Совершенно очевидно, что показать все эти узлы на одной Web-странице совершенно невозможно.

Выход состоит в разбиении на страницы (paging). Этот механизм реализован во всех поисковых системах для передачи за один раз некоей порции результатов запроса, скажем, из 10 записей. Теперь пользователь может эффективно работать с полученной информацией. Поддерживает разбиение на страницы и ADO — посредством нескольких свойств объекта Recordset: PageSize, PageCount и AbsolutePage.

При получении набора данных можно указать, что записи следует разбить на страницы. Количество строк набора данных, составляющих страницу, задается значением свойства PageSize. Затем можно определить общее количество страниц в наборе данных посредством свойства PageCount. А доступ к заданной странице обеспечивает свойство AbsolutePage.

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

Листинг 4.8.Разбиение набора данных на страницы средствами ADO.

Web-формы

Класс Page

Класс System.Web.UI.Page является базовым для классов создаваемых страниц. В локальных приложениях такую роль играет класс Form . Это значит, что динамические страницы наследуют множество полезных свойств и методов класса Page . Класс Page служит контейнером имен всех элементов управления, входящих в состав страницы. ASP.NET создает новое виртуальное пространство имен, гарантирующее всем дочерним элементам управления уникальность имен в пределах всего дерева элементов управления.

Свойства класса Page можно разделить на три группы:

  1. Внутренние объекты
  2. Рабочие свойства
  3. Специфические страничные свойства

На данном этапе мы коснемся только первой группы свойств.

Когда ASP.NET загружает страницу в память сервера, она создает объект , порожденный от класса Page . Одновременно создаются объекты первой группы и их имена становятся свойствами страницы-объекта. В эти объекты записывается информация , важная для управления всей страницей. Перечислим свойства-объекты страницы.

Внутренние объекты ASP.NET в составе класса Page
Свойство-объект Порождающий класс Описание
Application System.Web.HttpApplicationState Содержит информацию о состоянии приложения
Cache System.Web. Caching . Cache Следит за приоритетностью и устареванием элементов
Request System.Web.HttpRequest Содержит текущий запрос HTTP
Response System.Web.HttpResponse Осуществляет отправку ответа клиенту
Server System.Web.HttpServerUtility Предоставляет вспомогательные методы для отправки Web-запросов
Session System.Web.SessionState.HttpSessionState Управляет данными, связанными с определенным пользователем
Trace System.Web.TraceContext Осуществляет трассировку выполнения страницы
User System.Security. Principal .IPrincipal Представляет пользователя, от которого поступил запрос

Объекты Session, Application, Cache

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

Объект Application содержит словарь данных имя=значение, глобальных для всего приложения.

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

Объект Request

Этот объект представляет значения и свойства HTTP -запроса, вызвавшего загрузку страницы. Он содержит все параметры URL и другую информацию, отправляемую клиентом. Мы можем использовать объект Request , чтобы обнаружить, какой броузер используется клиентом, или устанавливать и анализировать cookie -наборы ( куки ). Ниже приведены наиболее распространенные свойства класса System.Web.HttpRequest , порождающего объект Request

Свойства класса System.Web.HttpRequest
Свойство Порождающий класс Описание
ApplicationPath string Виртуальный каталог приложения ASP.NET
PhysicalPath string Реальный каталог приложения ASP.NET
AnonymousID string Однозначно идентифицирует текущего пользователя при включенном анонимном доступе
Browser System.Web.HttpBrowserCapabilities Содержит свойства, которые описывают различные возможности броузера пользователя. Например, поддержку элементов управления ActiveX , cookie -наборов, активных сценариев, фреймов и т.д.
ClientCertificate System.Web.HttpClientCertificate Предоставляет сертификат безопасности для текущего запроса, если таковой существует
Cookies System.Web.HttpCookieCollection Предоставляет коллекцию cookie -наборов, прибывших с текущим запросом (постингом)
FilePath string Возвращает реальный путь (относительно сервера) к файлу страницы, запустившей процесс выполнения
CurrentExecutionFilePath string Содержит реальный путь новой страницы, если мы программно переместили пользователя на новую страницу с помощью метода Server. Transfer () без его уведомления (без полного цикла). Иначе содержит то же, что и FilePath
Form System. Collections . Specialized .NameValueCollection Представляет коллекцию переменных формы, поступивших с обратной отсылкой (постингом). В большинстве случаев мы будем извлекать эту информацию из свойств элемента управления вместо использования этого набора
Headers System. Collections . Specialized .NameValueCollection Предоставляет коллекцию HTTP-заголовков имя=значение
ServerVariables System. Collections . Specialized .NameValueCollection Предоставляет коллекцию глобальных серверных переменных имя=значение
IsAuthenticated bool Возвращает true при успешной аутентификации пользователя
IsSecureConnection bool Возвращает true при успешном подключении пользователя по протоколу защищенных сокетов ( Secure Sockets Layer — SSL )
IsLocal bool Возвращает true при запросе пользователем страницы с текущего компьютера
QueryString System. Collections . Specialized .NameValueCollection Предоставляет параметры, переданные клиентом в строке запроса методом get
Url System. Uri Содержит URL-адрес текущей страницы
UrlReferrer System. Uri Содержит URL-адрес страницы, с которой пользователь попал на текущую
UserAgent string Строка, представляющая тип броузера . Для этого свойства в Microsoft Internet Explorer предусмотрено значение MSIE
UserHostAddress string Предоставляет IP-адрес клиента
UserHostName string Предоставляет доменное имя клиента ( DNS — Domain Name System — служба имен доменов)
UserLanguages string Предоставляет отсортированный массив, который перечисляет языковые предпочтения клиента. Может пригодиться при создании многоязычных страниц

Объект Response

Этот объект содержит информацию и методы формирования ответа Web-сервера на запрос клиента. В таблице перечислены основные свойства и методы объекта Response .

Основные свойства и методы объекта Response
Член Тип Описание
BufferOutput bool При установке в true (по умолчанию) страница не отправляется клиенту до тех пор, пока не будет полностью сгенерирована (в отличие от отправки по частям при false )
Cache System.Web.HttpCachePolicy Позволяет конфигурировать кэширование вывода
Cookies System.Web.HttpCookieCollection Содержит коллекцию cookie -наборов, передаваемых вместе с ответом. Можно использовать для добавления дополнительных cookie -наборов
Expires int Это свойство можно использовать для кэширования сгенерированного HTML для страницы, что улучшает производительность последующих запросов
ExpiresAbsolute System. DateTime Это свойство можно использовать для кэширования сгенерированного HTML для страницы, что улучшает производительность последующих запросов
IsClientConnected bool Указывает на то, подключен ли клиент к серверу. Если нет, можно потребовать остановить длинную операцию
Write ( char );

Write ( char [ ], int, int);

Эти методы позволяют записать текст содержимого соответствующего типа непосредственно в поток ответа. Можно даже записать содержимое файла. Эти методы не так важны и не должны использоваться в сочетании с серверными элементами управления , которые сами заботятся о выводе
BinaryWrite( byte [ ]) Эти методы позволяют записать текст содержимого соответствующего типа непосредственно в поток ответа. Можно даже записать содержимое файла. Эти методы не так важны и не должны использоваться в сочетании с серверными элементами управления , которые сами заботятся о выводе
WriteFile(IntPtr, long, long);

WriteFile(string, long, long)

Эти методы позволяют записать текст содержимого соответствующего типа непосредственно в поток ответа. Можно даже записать содержимое файла. Эти методы не так важны и не должны использоваться в сочетании с серверными элементами управления , которые сами заботятся о выводе
Redirect (string);

Redirect (string, bool)

Этот метод направляет пользователя на другую страницу приложения или на другой сайт. Этот метод требует полного цикла с уведомлением пользователя. По сути он отправляет сообщение броузеру, которое заставляет его запросить новую страницу. Метод Server. Transfer () сразу загружает новую страницу и начинает ее обработку. В результате URL, отображаемый в броузере клиента, не меняется. Но этим методом перемещаться на другой сайт нельзя

Объект Server

Основные свойства и методы объекта Server
Член Тип Описание
MachineName string Представляет имя компьютера, на котором запускается страница. Это имя Web-сервера, используемое компьютером с целью его идентификации для остальной части сети
CreateObject(string); Создает экземпляр COM-объекта, определяемый его программным идентификатором progID . Используется для обратной совместимости , поскольку упрощает взаимодействие с COM-объектами в .NET
GetLastError() Извлекает объект самого последнего исключения или нулевую ссылку, если исключения не было. Используется в обработчике событий приложения, проверяющего сбойные ситуации.
HtmlEncode(string); Осуществляет HTML-кодирование строки допустимыми символами, которые не будут восприниматься как управляющие ( > & & amp ; жесткий пробел &nbsp )
HtmlDecode(string); Осуществляет обратную операцию по отношению к HTML- кодированной строке символов
UrlEncode(string); Заменяет обычную строку строкой допустимых символов URL, отменяя пробелы и другие спецсимволы , кодируя кириллицу, %, ?, &
UrlDecode(string); Раскодирует строку символов URL
UrlTokenEncode( byte [ ]) Выполняет те же действия, что и UrlEncode() , но работает с байтовым массивом, который содержит данные в формате Base64
UrlTokenDecode(string) Выполняет те же действия, что и UrlDecode() , но работает с байтовым массивом, который содержит данные в формате Base64
MapPath(string) Возвращает физический файл, соответствующий определенному виртуальному пути файла на Web-сервере
Transfer (string);

Transfer (string, bool);

Transfer (System.Web.IHttpHandler, bool)

Передает исполнение другой Web-странице в текущем приложении. Этот метод похож на метод Response . Redirect () , но работает быстрее. Но его нельзя применять для перемещения пользователя на сайт, расположенный на другом Web-сервере, или же на страницу, отличную от ASP.NET (например, HTML или ASP )

При использовании метода Server. Transfer () не происходит полного цикла. Вместо этого механизм ASP.NET просто загружает новую страницу и начинает ее обработку. В результате URL, отображаемый в броузере клиента, не меняется (. хотели кока, а съели Кука).

Метод Server.MapPath() является еще одним полезным методом. Пусть, например, мы собираемся загрузить файл под названием info.txt из текущего виртуального каталога. Вместо жесткого кодирования пути можно использовать Request .ApplicationPath() , чтобы получить текущий относительный виртуальный каталог. Затем применить метод Server.MapPath() — для преобразования его в абсолютный физический путь.

Объект User

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

Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект. — презентация

Презентация была опубликована 6 лет назад пользователемИгорь Торицын

Похожие презентации

Презентация на тему: » Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект.» — Транскрипт:

1 Лекция 6 Active Server Pages (ASP )Active Server Pages (ASP ) –Основы. –GLOBAL.ASA –Объекты и компоненты. –Объект Application. –Объект Session. –Объект Request. –Объект Response. –Объект Server.

2 Основы ASP Active Server Pages активные серверные страницы.Active Server Pages активные серверные страницы. ASP — сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML- текст.ASP — сценарий на VBScript, который исполняется на сервере. Когда запрашивается страница, этот сценарий порождает HTML- текст. К лиент никогда не видит кода, а только результирующий HTML, который воспринимает любая программа просмотра.К лиент никогда не видит кода, а только результирующий HTML, который воспринимает любая программа просмотра.

3 Пример Пример демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now функция VBScript, возвращающая текущий момент времени и дату.Пример демонстрирует простую ASP-страницу, которая создает приветствие в соответствии со временем суток. В нем текущий час определяется при помощи кода Hour(Now), где Now функция VBScript, возвращающая текущий момент времени и дату.Пример

17 Then strGreeting = Добрый вечер! End If %>» title=»Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = Добрый вечер! End If %>» > 4 Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = «Добрый вечер!» End If %> 17 Then strGreeting = Добрый вечер! End If %>»> 17 Then strGreeting = «Добрый вечер!» End If %>»> 17 Then strGreeting = Добрый вечер! End If %>» title=»Пример Листинг 1. Простой пример ASP.Листинг 1. Простой пример ASP. Simple ASP Example Simple ASP Example 11 And Hour(Now) 11 And Hour(Now) 17 Then strGreeting = Добрый вечер! End If %>»>

5 Особенности К од в листинге, окруженный угловыми скобками и знаками процента ( ) — серверный код, который выполняется перед тем, как страница будет послана программе просмотра.К од в листинге, окруженный угловыми скобками и знаками процента ( ) — серверный код, который выполняется перед тем, как страница будет послана программе просмотра. — на каком языке написан сценарий на данной странице. Можно использовать JavaScript. — на каком языке написан сценарий на данной странице. Можно использовать JavaScript. — п еременн ой strGreeting предшествует знак равенства, указывая, что в данное место HTML- кода нужно вставить текущее значение переменной. — п еременн ой strGreeting предшествует знак равенства, указывая, что в данное место HTML- кода нужно вставить текущее значение переменной.

6 Файл GLOBAL.ASA. В Интернете сложно создать настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе.В Интернете сложно создать настоящее приложение. Взаимодействие программы просмотра и Web-сервера представляет собой лишенную состояния транзакцию, в ходе которой сервер посылает клиенту Web-страницу и затем забывает о его существовании. Когда клиент запрашивает другую Web-страницу, сервер ничего не помнит о предыдущем запросе.

7 Файл GLOBAL.ASA. Д ля определения начала и завершения как всего приложения, так и отдельных пользовательских сессий в ASP используется файл GLOBAL.ASA.Д ля определения начала и завершения как всего приложения, так и отдельных пользовательских сессий в ASP используется файл GLOBAL.ASA. Он реагир ует на четыре ключевых события: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии).Он реагир ует на четыре ключевых события: Application_OnStart (запуск приложения), Application_OnEnd (завершение приложения), Session_OnStart (начало сессии) и Session_OnEnd (завершение сессии). В листинге 2 приведен типичный файл GLOBAL.ASA.В листинге 2 приведен типичный файл GLOBAL.ASA.

Илон Маск рекомендует:  Криптографические алгоритмы

8 Файл GLOBAL.ASA. Листинг 2. Файл GLOBAL.ASA.Листинг 2. Файл GLOBAL.ASA. Sub Session_OnStart End Sub Sub Session_OnEnd End Sub Sub Application_OnStart End Sub Sub Application_OnEnd End Sub

9 Файл GLOBAL.ASA. Для обозначения разделов сценария GLOBAL.ASA содержит теги. Эти теги имеют особый атрибут RUNAT=Server, который означает, что содержащийся в теге код на VBScript должен исполняться на сервере, а не на клиенте. Функционально RUNAT=Server означает то же, что и сочетания угловых скобок и знака процента, используемые для обозначения серверного сценария на Web- страницах.Для обозначения разделов сценария GLOBAL.ASA содержит теги. Эти теги имеют особый атрибут RUNAT=Server, который означает, что содержащийся в теге код на VBScript должен исполняться на сервере, а не на клиенте. Функционально RUNAT=Server означает то же, что и сочетания угловых скобок и знака процента, используемые для обозначения серверного сценария на Web- страницах.

10 Файл GLOBAL.ASA. Ф ормулировк а, предложенная Microsoft, определяет Интернет- приложение как виртуальный каталог со всеми его файлами.Ф ормулировк а, предложенная Microsoft, определяет Интернет- приложение как виртуальный каталог со всеми его файлами. Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.Если пользователь запрашивает Web-страницу из виртуального каталога под названием Bookstore, то тем самым он запускает приложение Bookstore, и в GLOBAL.ASA возбуждаются события Application_OnStart и Session_OnStart.

11 Файл GLOBAL.ASA. Согласно этому определению с приложением одновременно могут работать несколько программ просмотра.Согласно этому определению с приложением одновременно могут работать несколько программ просмотра. С обытие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога.С обытие Application_OnStart происходит только один раз: когда первый пользователь запрашивает Web-страницу из виртуального каталога. Когда страницы из этого каталога запрашивают другие пользователи, возбуждается только событие Session_OnStart.Когда страницы из этого каталога запрашивают другие пользователи, возбуждается только событие Session_OnStart. Session_OnStart

12 Файл GLOBAL.ASA. Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога.Для конкретной программы просмотра сессия длится, пока программа продолжает запрашивать страницы виртуального каталога. Если пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd.Если пользователь не запрашивает Web-страницы (из данного виртуального каталога) на протяжении 20 минут (по умолчанию), сессия завершается, и возбуждается событие Session_OnEnd. Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.Когда в данном виртуальном каталоге завершаются все сессии, возбуждается событие Application_OnEnd.

13 Объекты и компоненты. VBScript не является полнофункциональным языком. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы.VBScript не является полнофункциональным языком. Так, в VBScript нет встроенных функций доступа к данным; не умеет он и открывать текстовые файлы. Все это и многое другое реализуется объектами и компонентами ASP.Все это и многое другое реализуется объектами и компонентами ASP. ASP-объекты и компоненты это компоненты ActiveX, подобные обычным DLL ActiveX.ASP-объекты и компоненты это компоненты ActiveX, подобные обычным DLL ActiveX.

14 Объекты и компоненты. ASP-объекты это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server.ASP-объекты это элементы управления ActiveX, которые в коде на VBScript доступны всегда: их не нужно создавать явно. В число объектов ASP входят Application, Session, Request, Response и Server. ASP-компоненты — это DLL, существующие вне структуры ASP. ASP-компоненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.ASP-компоненты — это DLL, существующие вне структуры ASP. ASP-компоненты нужно явно создавать в коде. ASP поддерживает компоненты Database Access, File Access, Browser Capabilities, Ad Rotator и Content Linking.

15 Объект Application. Объект Application (приложение) позволяет создавать переменные приложения (application variables), доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога.Объект Application (приложение) позволяет создавать переменные приложения (application variables), доступные всем пользователям данного приложения. Все, кто обращается к Web-страницам данного виртуального каталога, могут совместно использовать любую переменную приложения определенную для этого каталога. В листинге 3 приведен пример программы, в не й переменная приложения служит для отслеживания времени последнего обращения к страницам приложения.В листинге 3 приведен пример программы, в не й переменная приложения служит для отслеживания времени последнего обращения к страницам приложения.пример

16 Объект Application. Листинг 3. Объект Application.Листинг 3. Объект Application. Application Variables Application Variables Эта страница последний раз посещалась: Эта страница последний раз посещалась:

17 Объект Application. Имя может быть произвольным, а переменная может содержать любую информацию, будь то число или текст.Имя может быть произвольным, а переменная может содержать любую информацию, будь то число или текст. Т акие переменные доступны нескольким пользователям одновременно.Т акие переменные доступны нескольким пользователям одновременно. Для разрешения коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, поэтому после изменения значения переменной разблокируйте объект.Для разрешения коллизий объект Application поддерживает методы Lock и UnLock. Метод Lock блокирует весь объект Application, поэтому после изменения значения переменной разблокируйте объект.

18 Объект Application. П еременные приложения пригодны лишь для временного хранения данных, их нельзя использовать для долговременного хранения.П еременные приложения пригодны лишь для временного хранения данных, их нельзя использовать для долговременного хранения. Все данные в переменных приложения уничтожаются, когда происходит событие Application_OnEnd. Так что, если вы хотите, чтобы они сохранились после завершения приложения, позаботьтесь о их переносе в файл или базу данных.Все данные в переменных приложения уничтожаются, когда происходит событие Application_OnEnd. Так что, если вы хотите, чтобы они сохранились после завершения приложения, позаботьтесь о их переносе в файл или базу данных.

19 Объект Session. ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables).ASP поддерживает переменные для индивидуального пользователя при помощи объекта Session (сессия), который позволяет создавать переменные сессии (session variables). Sub Session_OnStart Session(«Company»)=»NewTech» End Sub

20 Объект Session. Переменные сессии можно создавать на любой Web-странице или в файле GLOBAL.ASA, а доступны они на любой Web- странице приложения, в котором эти переменные были первоначально созданы.Переменные сессии можно создавать на любой Web-странице или в файле GLOBAL.ASA, а доступны они на любой Web- странице приложения, в котором эти переменные были первоначально созданы. Получить значения переменных сессии можно, считывая их из объекта Session. Следующий пример считывает переменные сессии выводит их в полях ввода:Получить значения переменных сессии можно, считывая их из объекта Session. Следующий пример считывает переменные сессии выводит их в полях ввода: пример

21 Объект Session. Как ASP запоминает переменные сессии для каждого пользователя приложения:Как ASP запоминает переменные сессии для каждого пользователя приложения: эти переменные сохраняются на сервере для каждого клиента. Программа просмотра получает от сервера уникальный идентификатор, позволяющий определить, какой набор переменных кому принадлежит. Клиент этот идентификатор (Globally Unique >

22 Объект Session. Д ля установки или считывания в р емени жизни сессии (в минутах) применяется свойство Timeout объекта Session:Д ля установки или считывания в р емени жизни сессии (в минутах) применяется свойство Timeout объекта Session: Session.Timeout=30Session.Timeout=30 Для принудительного окончания сессии и ликвидации сессионных переменных применяют метод AbandonДля принудительного окончания сессии и ликвидации сессионных переменных применяют метод Abandon Session.AbandonSession.Abandon

23 Объект Request. Для передачи данны х серверу программа просмотра использует отправку формы (form submission).Для передачи данны х серверу программа просмотра использует отправку формы (form submission). Данные имеют вид пар Поле=Значение, отсылаемых серверу открыты м текст ом.Данные имеют вид пар Поле=Значение, отсылаемых серверу открыты м текст ом. На сервере эти данные разбирает по полям объект Request. Например, следующий код вернет вам значение поля формы Name:На сервере эти данные разбирает по полям объект Request. Например, следующий код вернет вам значение поля формы Name:

24 Объект Request. Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию.Request.Form применяется, когда данные были отправлены методом POST и именно этому сценарию. Если для отправки данных используется метод GET или сценарий вызывается с передачей параметров в гиперссылкеЕсли для отправки данных используется метод GET или сценарий вызывается с передачей параметров в гиперссылке Чтобы отправить данные, щелкните здесь! Чтобы отправить данные, щелкните здесь! то для разбота данных применяют свойство Request.QueryString:то для разбота данных применяют свойство Request.QueryString:

25 Объект Request. Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра.Request.Cookies используются для извлечения информации из кукисов (cookies), отосланных вместе с запросом строке пользовательского агента программы просмотра. Л истинг 5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.Л истинг 5 демонстрирует применение свойства ServerVariables для определения имени компьютера, с которого клиент вызвал сценарий.демонстрирует

26 Объект Request. Листинг 5. Определение компьютера пользователя.Листинг 5. Определение компьютера пользователя. Server Variables Server Variables Вы вошли с компьютера Вы вошли с компьютера Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.Переменные сервера представляют широкий круг информации о клиенте и Web-сервере. Доступ к каждой конкретной переменной сводится к чтению соответствующей переменной.

27 Объект Response. Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response.Фактически в комбинации знак равенства представляет собой сокращенное обозначение метода Write объекта Response. С ледующие две строки кода эквивалентны:С ледующие две строки кода эквивалентны: Поскольку объект Response используется очень часто, такое сокращение оправдано.Поскольку объект Response используется очень часто, такое сокращение оправдано.

28 Объект Response. Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти.Полезное свойство объекта Response — Expires. Оно задает время (в минутах) за которое страница устаревает. Если установить его в нуль, то страница будет устаревать в момент загрузки и Internet Explorer не будет ее кэшировать. Кэширование сильно влияет на разработку и может привести к тому, что приложение будет функционировать неправильно. IE кэширует страницы двумя способами: на диске и в памяти.

29 Объект Response. Рассмотрим такой фрагмент кода, показывающий текущее время и дату:Рассмотрим такой фрагмент кода, показывающий текущее время и дату: Сейчас Сейчас Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно.Когда IE запрашивают страницу с этим кодом, на сервере выполняется сценарий, и на странице появляется текущее время. Однако, если программа просмотра переходит к другой странице, а затем возвращается к этой, со временем, то время не изменится, поскольку IE не запрашивает ее повторно.

30 Объект Response. В листинге 6 приведена исправленная версия примера, устаревающая уже в момент загрузки.В листинге 6 приведена исправленная версия примера, устаревающая уже в момент загрузки.приведена Листинг 6. Страница, устаревающая уже в момент загрузки.Листинг 6. Страница, устаревающая уже в момент загрузки. Forcing a Page to Expire Forcing a Page to Expire Сейчас Сейчас

31 Объект Response. Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:Еще один полезный метод объекта Response — Redirect, перенаправляющий программу просмотра на указанный URL:

32 Объект Response. Кроме методов (Write и Redirect) и свойства Expires у объекта Response имеется коллекция (набор однотипных объектов) Cookies. Создание элемента коллекции означает запись теневой посылки на компьютер посетителя. Каждый элемент коллекции имеет имя, одно или несколько значений и несколько свойств:Кроме методов (Write и Redirect) и свойства Expires у объекта Response имеется коллекция (набор однотипных объектов) Cookies. Создание элемента коллекции означает запись теневой посылки на компьютер посетителя. Каждый элемент коллекции имеет имя, одно или несколько значений и несколько свойств:

33 Объект Response. срок жизни (Expires),срок жизни (Expires), имя папки на сервере, сценарии из которой имеют право чтения этой теневой посылки (Path),имя папки на сервере, сценарии из которой имеют право чтения этой теневой посылки (Path), имя сервера, сценарии которого имеют право чтения этой теневой посылки (Domain).имя сервера, сценарии которого имеют право чтения этой теневой посылки (Domain).

34 Объект Response. Обязательным параметром теневой посылки является только ее имя. Остальные параметры можно не указывать. В этом случае:Обязательным параметром теневой посылки является только ее имя. Остальные параметры можно не указывать. В этом случае: Отсутствие значения приводит к стиранию теневой посылки с компьютера посетителя;Отсутствие значения приводит к стиранию теневой посылки с компьютера посетителя; Отсутствие срока жизни приводит к устареванию теневой посылки в момент закрытия браузера;Отсутствие срока жизни приводит к устареванию теневой посылки в момент закрытия браузера;

35 Объект Response. Отсутствие имени папки означает разрешение чтения теневой посылки сценариями из текущей папки;Отсутствие имени папки означает разрешение чтения теневой посылки сценариями из текущей папки; Отсутствие имени сервера означает разрешение чтения теневой посылки сценариям любого сервера (если они знают имя теневой посылки).Отсутствие имени сервера означает разрешение чтения теневой посылки сценариям любого сервера (если они знают имя теневой посылки).

36 Объект Response. Приведем пример записи теневой посылки:Приведем пример записи теневой посылки: Response.Cookies(«visit»)(«Value ) = dataResponse.Cookies(«visit»)(«Value ) = data Response.Cookies(«visit»).Expires = Date + 365Response.Cookies(«visit»).Expires = Date Response.Cookies(«visit»).Path= » / «Response.Cookies(«visit»).Path= » / » Response.Cookies(«visit»).Domain= Request.ServerVariables(SERVER_N AME )Response.Cookies(«visit»).Domain= Request.ServerVariables(SERVER_N AME )

37 Объект Server. Объект Server (сервер) содержит функции, никак не связаны между собой.Объект Server (сервер) содержит функции, никак не связаны между собой. С амая важная функци я объекта Server это метод CreateObject, который создает экземпляр компонента ActiveX.С амая важная функци я объекта Server это метод CreateObject, который создает экземпляр компонента ActiveX. Аргументом метода CreateObject служит Prog >

38 Объект Server. Следующая строчка показывает, как при помощи CreateObject создать экземпляр компонента с Prog >

Введение в ASP:

Response.ContentType =»text/html» — задаёт mime-тип содержимого, текущей страницы.
Response.Cookies(имя)(ключ) =значение — записывает значения cookies.
Response.Expires =время — Устанавливает промежуток времени, по истечении которого, страница в кэше считается устаревшей. При время=0 страница устаревает при получении.
Response.ExpiresAbsolute =#дата# — Учтанавливает дату, после которой страница считает устаревшей.
Response.Status = «404- Not Found» — Задаё строку состояния, передаваемую броузеру. Используется для передачи диагностических сообщений.
Response.AddHeader имя, значение — Позволяет добавить к Web-странице пользовательский заголовок.
Response.AppendToLog строка — Добавляет информацию в запись в журнале Web-сервера, относящуюся к данной передаче страницы.
Response.BinaryWrite данные — Записывает в страницу двоичные данные для использования клиентскими объектами.
Response.Clear — Очищает буфер вывода ASP-страницы
Response.End — Прекращает обработку сценария и отсылает страницу клиенту
Response.Flush — Очищает буфер и отсылает его содержимое клиенту
Response.Redirect URL — Перенаправляет броузер по указанному URL.
Response.Write данные — записывает текстовые данные в буфер HTML-страницы. Эту команду можно заменить знаком равенства.

Request.ClientCertificate (переменная) — Набор значений сертификата клиента.
Request.Cookies (переменная)-набор Cookies, переданных в заголовке HTTP клиентом.
Request.Form (имяПоля) — набор данных передаваемых серверу в форме. (методы GET и POST).
Request.QueryString (имяПоля) — набор данных преданных клиентом в гиперссылке.
Request.ServerVariables (переменная) — набор переменных сервера, полученных от клиента.

Объекты Request и Response осуществляют взаимодействие ASP страницы с клиентом, запрос и ответ соответственно.

Этот объект позволяет сценарию обращаться к серверу.
Естественно, все установки можно менять только, если Вы имеете доступ к ним.
Server.ScriptTimeOut=время -свойство устанавливает время, которое даётся сценарию на исполнение. По истечению этого времени клиент получает сообщение об ошибке.
Set Переменная=Server.CreateObject(objID) -создаёт ActiveX объект. К примеру:
Set FSO=Server.CreateObject(«Scripting.FileSystemObject»).
Server.MapPath(виртуальный путь) -возвращает полный путь, соответсвующий виртуальному.
Server.HTMLEncode(строка) -Кодирует строку в соответствии с требованиями HTML:

.
Server.URLEncode(строка) — Кодирует строку, по правилам создания URL. «text text»=»text+text».

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

Application -Объект обозначает текущее приложение. Вызов переменных осуществляется Application(«имяПеременной») . Так как существует возможность одновременного доступа к одной и той же переменной, используется код.

Session -объект обозначающий текущую сессию.

Asp объект server

Мы очень быстро научились создавать ASP-страницы, которые умеют «читать» и «писать» базу данных SQL. Пора задуматься о смысле жизни.

Технология ASP может использовать компоненты ActiveX и взаимодействовать с сервером с учетом использования объектной модели.

Серверные компоненты представляют собой объекты OLE Automation. Можно создавать серверные компоненты при помощи C++, Visual Basic , но ASP содержит и ряд встроенных компонентов.

Ad Rotator — позволяет «вращать» изображения на странице в случайном порядке, либо в определенной последовательности.

Browser Capabilities — позволяет сценарию получить информацию о возможностях клиента.

Content Linker — позволяет создать и вести список URL Web-узла.

Database Access — самый важный компонент или Active Data Object (ADO), который позволяет легко и просто получить доступ к базе данных.

File Access — позволяет создавать, открывать , читать и записывать текстовый файл в локальной файловой системе.

Объектная модель ASP-сервера

Application — создается в файле GLOBAL.ASA и может применяться для совместного использования данных.

Определяем пользовательское свойство и записываем его значение:

Теперь во всех файлах нашего приложения можем создать одинаковый для всех страниц тэг:

Request — объект содержит значения, переданные серверу посредством HTTP-запроса. В этом объекте есть пять наборов:

  • ClientCertificate — данные, которые запросил сервер при установлении соединения
  • Cookies — значения cookie Forms — содержит значения, переданные серверу при отправке данных формы методом POST
  • QueryString — содержит значения, переданные серверу при отправке данных формы методом GET
  • ServerVariables — содержит ряд переменных среды сервера, например HTTP_USER_AGENT

Response — отправляет данные обратно клиенту. Например, вызывая метод Write объекта Response можно вставлять строки в выходной HTML-файл.

Server — позволяет сценарию взаимодействовать с сервером.

Session — сохраняет информацию о сеансе работы пользователя.

Это краткий обзор «анатомии» ASP. Его надо было сделать. Есть над чем задуматься или испугаться. А для тех, кто ничего не боится, будут следующие шаги и подробности ASP.

Объекты ASP Session, Server и Application

Кроме объектов Request и Response, ASP обладает также доступом к внутренним объектам Session, Server и Application. Фактически это одно из главных пре имуществ ASP перед CGI и ISAPI: активный объект сервера может обращаться к ин формации сеанса и приложения без каких бы то ни было дополнительных усилий со стороны программиста (используя cookies, скрытые поля или переменные URL).

Возвращаясь к предыдущему примеру, напомним, что класс TDrBob42 происходит от класса TASPObject. В дополнение к свойствам Request и Response, этот класс обладает свойствами TASPObject.Session, Server и Application. Такие свойства обеспечивают прямой доступ к внутренним объектам ASP Session, Server и Appli- cation соответственно. Эти свойства можно использовать в составе методов классаTDrBob42, например для хранения имен всех посетителей Web сайта, что может быть реализовано следующим образом (обратите внимание на вторую строку):

Чтобы сделать это значение постоянным (постоянным для всех активных страниц сервера, посещаемых тем же самым пользователем в течении того же самого сеанса), можно воспользоваться объектом Session активного объекта сервера, а также дру гими объектами Form, QueryString или Cookies (см. листинг 22.5).

Листинг 22.5. DrBob42ASP — исходный код активного объекта сервера

Str := Session.Value[‘Name’]; Response.Write(‘Hello, ‘+Str+’!’); Response.Write(‘

Response.Write(‘Welcome back to Delphi 6 and ASP Objects’);

Объект Session использует для хранения своего состояния cookies, поэтому удо

стоверьтесь, что на установленном Web сервере применение cookies разрешено.

Источник: Тейксейра, Стив, Пачеко, Ксавье. Borland Delphi 6. Руководство разработчика. : Пер. с англ. — М. : Издательский дом “Вильямс”, 2002. — 1120 с. : ил. — Парал. тит. англ.

ASP.NET — Server Side

We have studied the page life cycle and how a page contains various controls. The page itself is instantiated as a control object. All web forms are basically instances of the ASP.NET Page class. The page class has the following extremely useful properties that correspond to intrinsic objects:

We will discuss each of these objects in due time. In this tutorial we will explore the Server object, the Request object, and the Response object.

Server Object

The Server object in Asp.NET is an instance of the System.Web.HttpServerUtility class. The HttpServerUtility class provides numerous properties and methods to perform various jobs.

Properties and Methods of the Server object

The methods and properties of the HttpServerUtility class are exposed through the intrinsic Server object provided by ASP.NET.

Илон Маск рекомендует:  Что такое код asp iiswebinfo

The following table provides a list of the properties:

Property Description
MachineName Name of server computer
ScriptTimeOut Gets and sets the request time-out value in seconds.

The following table provides a list of some important methods:

Method Description
CreateObject(String) Creates an instance of the COM object identified by its ProgID (Programmatic ID).
CreateObject(Type) Creates an instance of the COM object identified by its Type.
Equals(Object) Determines whether the specified Object is equal to the current Object.
Execute(String) Executes the handler for the specified virtual path in the context of the current request.
Execute(String, Boolean) Executes the handler for the specified virtual path in the context of the current request and specifies whether to clear the QueryString and Form collections.
GetLastError Returns the previous exception.
GetType Gets the Type of the current instance.
HtmlEncode Changes an ordinary string into a string with legal HTML characters.
HtmlDecode Converts an Html string into an ordinary string.
ToString Returns a String that represents the current Object.
Transfer(String) For the current request, terminates execution of the current page and starts execution of a new page by using the specified URL path of the page.
UrlDecode Converts an URL string into an ordinary string.
UrlEncodeToken Works same as UrlEncode, but on a byte array that contains Base64-encoded data.
UrlDecodeToken Works same as UrlDecode, but on a byte array that contains Base64-encoded data.
MapPath Return the physical path that corresponds to a specified virtual file path on the server.
Transfer Transfers execution to another web page in the current application.

Request Object

The request object is an instance of the System.Web.HttpRequest class. It represents the values and properties of the HTTP request that makes the page loading into the browser.

The information presented by this object is wrapped by the higher level abstractions (the web control model). However, this object helps in checking some information such as the client browser and cookies.

Properties and Methods of the Request Object

The following table provides some noteworthy properties of the Request object:

Property Description
AcceptTypes Gets a string array of client-supported MIME accept types.
ApplicationPath Gets the ASP.NET application’s virtual application root path on the server.
Browser Gets or sets information about the requesting client’s browser capabilities.
ContentEncoding Gets or sets the character set of the entity-body.
ContentLength Specifies the length, in bytes, of content sent by the client.
ContentType Gets or sets the MIME content type of the incoming request.
Cookies Gets a collection of cookies sent by the client.
FilePath Gets the virtual path of the current request.
Files Gets the collection of files uploaded by the client, in multipart MIME format.
Form Gets a collection of form variables.
Headers Gets a collection of HTTP headers.
HttpMethod Gets the HTTP data transfer method (such as GET, POST, or HEAD) used by the client.
InputStream Gets the contents of the incoming HTTP entity body.
IsSecureConnection Gets a value indicating whether the HTTP connection uses secure sockets (that is, HTTPS).
QueryString Gets the collection of HTTP query string variables.
RawUrl Gets the raw URL of the current request.
RequestType Gets or sets the HTTP data transfer method (GET or POST) used by the client.
ServerVariables Gets a collection of Web server variables.
TotalBytes Gets the number of bytes in the current input stream.
Url Gets information about the URL of the current request.
UrlReferrer Gets information about the URL of the client’s previous request that is linked to the current URL.
UserAgent Gets the raw user agent string of the client browser.
UserHostAddress Gets the IP host address of the remote client.
UserHostName Gets the DNS name of the remote client.
UserLanguages Gets a sorted string array of client language preferences.

The following table provides a list of some important methods:

Method Description
BinaryRead Performs a binary read of a specified number of bytes from the current input stream.
Equals(Object) Determines whether the specified object is equal to the current object. (Inherited from object.)
GetType Gets the Type of the current instance.
MapImageCoordinates Maps an incoming image-field form parameter to appropriate x-coordinate and y-coordinate values.
MapPath(String) Maps the specified virtual path to a physical path.
SaveAs Saves an HTTP request to disk.
ToString Returns a String that represents the current object.
ValidateInput Causes validation to occur for the collections accessed through the Cookies, Form, and QueryString properties.

Response Object

The Response object represents the server’s response to the client request. It is an instance of the System.Web.HttpResponse class.

In ASP.NET, the response object does not play any vital role in sending HTML text to the client, because the server-side controls have nested, object oriented methods for rendering themselves.

However, the HttpResponse object still provides some important functionalities, like the cookie feature and the Redirect() method. The Response.Redirect() method allows transferring the user to another page, inside as well as outside the application. It requires a round trip.

Properties and Methods of the Response Object

The following table provides some noteworthy properties of the Response object:

Property Description
Buffer Gets or sets a value indicating whether to buffer the output and send it after the complete response is finished processing.
BufferOutput Gets or sets a value indicating whether to buffer the output and send it after the complete page is finished processing.
Charset Gets or sets the HTTP character set of the output stream.
ContentEncoding Gets or sets the HTTP character set of the output stream.
ContentType Gets or sets the HTTP MIME type of the output stream.
Cookies Gets the response cookie collection.
Expires Gets or sets the number of minutes before a page cached on a browser expires.
ExpiresAbsolute Gets or sets the absolute date and time at which to remove cached information from the cache.
HeaderEncoding Gets or sets an encoding object that represents the encoding for the current header output stream.
Headers Gets the collection of response headers.
IsClientConnected Gets a value indicating whether the client is still connected to the server.
Output Enables output of text to the outgoing HTTP response stream.
OutputStream Enables binary output to the outgoing HTTP content body.
RedirectLocation Gets or sets the value of the Http Location header.
Status Sets the status line that is returned to the client.
StatusCode Gets or sets the HTTP status code of the output returned to the client.
StatusDescription Gets or sets the HTTP status string of the output returned to the client.
SubStatusCode Gets or sets a value qualifying the status code of the response.
SuppressContent Gets or sets a value indicating whether to send HTTP content to the client.

The following table provides a list of some important methods:

Method Description
AddHeader Adds an HTTP header to the output stream. AddHeader is provided for compatibility with earlier versions of ASP.
AppendCookie Infrastructure adds an HTTP cookie to the intrinsic cookie collection.
AppendHeader Adds an HTTP header to the output stream.
AppendToLog Adds custom log information to the InterNET Information Services (IIS) log file.
BinaryWrite Writes a string of binary characters to the HTTP output stream.
ClearContent Clears all content output from the buffer stream.
Close Closes the socket connection to a client.
End Sends all currently buffered output to the client, stops execution of the page, and raises the EndRequest event.
Equals(Object) Determines whether the specified object is equal to the current object.
Flush Sends all currently buffered output to the client.
GetType Gets the Type of the current instance.
Pics Appends a HTTP PICS-Label header to the output stream.
Redirect(String) Redirects a request to a new URL and specifies the new URL.
Redirect(String, Boolean) Redirects a client to a new URL. Specifies the new URL and whether execution of the current page should terminate.
SetCookie Updates an existing cookie in the cookie collection.
ToString Returns a String that represents the current Object.
TransmitFile(String) Writes the specified file directly to an HTTP response output stream, without buffering it in memory.
Write(Char) Writes a character to an HTTP response output stream.
Write(Object) Writes an object to an HTTP response stream.
Write(String) Writes a string to an HTTP response output stream.
WriteFile(String) Writes the contents of the specified file directly to an HTTP response output stream as a file block.
WriteFile(String, Boolean) Writes the contents of the specified file directly to an HTTP response output stream as a memory block.

Example

The following simple example has a text box control where the user can enter name, a button to send the information to the server, and a label control to display the URL of the client computer.

Asp объект server

Этот текст предназначен для тех, кто никогда не имел дела с ASP и вообще смутно себе представляет возможности программирования на стороне сервера. Я ставил себе задачу создать у читателя общее представление о предмете. Отдельные неточности при этом менее важны — пожалуйста, громко не ругайтесь.

Общие сведения

ASP (Active Server Pages) – это мощная технология от Microsoft, позволяющая легко разрабатывать приложения для WWW. ASP работает на платформе Windows NT и IIS (Internet Information Server), начиная с версии 3, хотя вроде есть реализации на других платформах. ASP – это не язык программирования, это внутренняя технология, позволяющая подключать программы к Web-страницам. Основа успеха ASP – простой скриптовый язык (Visual Basic Script или Java Script) и возможность использования внешних COM-компонент.

Как это все происходит?

Вы пишете программу и складываете в файл на сервере. Браузер клиента запрашивает файл. Файл сначала интерпретируется сервером, на выходе производится HTML-код. Этот HTML посылается клиенту. Файлы с программами имеют расширение .asp. Файлы asp – это обычные текстовые файлы, содержащие исходные тексты программ. Файлы делаются с помощью любого текстового редактора. Каталог, в котором размещены файлы asp должен иметь права на выполнение, так как сервер исполняет эти файлы, когда браузер их запрашивает. Собственно программы пишутся на любом скриптовом языке, который установлен в системе. По умолчанию поддерживаются VBScript и JavaScript. Можно доустановить другие (например, Perl). Если ничего специально не указывать используется VBScript. В дальнейшем будем ссылаться только на него. Программные фрагменты заключаются в скобки . Можно ставить открывающую скобку в начале файла, закрывающую – в конце, все что между ними – программа на Visual Basic’е.

Какие средства есть для программирования?

Web – нормальная среда программирования, если правильно понять, что есть что. В VBScript есть все нормальные конструкции структурного программирования (if, while, case, etc). Есть переменные (описывать не обязательно, тип явно не задается). Поддерживаются объекты. Работа с ними обычная – Object.Property, Object.Method. Есть ряд встроенных объектов (Request, Response, Session, Server, Connection, Recordset). Можно доустанавливать другие компоненты (скачивать, покупать, программировать), например для работы с электронной почтой.

Вывод

Понятия «экран», куда можно выводить данные нет. Все, что надо показать пользователю, выбрасывается в выходной поток на языке HTML. Браузер пользователя интерпретирует этот HTML. Для упрощения вывода существует объект Response . Вывод осуществляется с помощью метода Write .

Так производится запись во внутренний буфер объекта Response. Когда скрипт заканчивает работу, весь буфер выдается клиенту. Надо заметить, что клиент получает «чистый» HTML, таким образом программы на ASP не зависят от клиентского ПО, что очень важно. Если внутри выводимой строки нужно использовать кавычку, кавычка удваивается. Другие методы и свойства Response позволяют управлять выводом. Так Response.Buffer регулирует, получает ли клиент данные по мере из записи в Response, или все сразу по завершении исполнения страницы. Метод Response.Redirect перенаправляет браузер на другую страницу. Чтобы им пользоваться, нельзя до него на странице использовать Response.Write.

Программа на ASP не может явно спросить пользователя о чем-то. Она получает данные из других страниц, либо через URL. Передаваемые параметры помещаются во входной поток и доступны через объект Request . Чтобы передать переменную var в программу test.asp , надо написать:

Чтобы из программы получить значение этой переменной, надо написать:

Несколько переменных разделяется знаком &:

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

Так это выглядит:

При этом пользователь увидит форму из одного поля ввода (var1), в нем будет значение по умолчанию «default». Второе поле (var2) будет невидимо и будет передавать всегда фиксированное значение «var2value». Кнопка «Submit Form» завершает заполнение формы и передает все переменные на test.asp (action). Если method=»get», переменные передаются через URL (test.asp?var1=default&var2=var2value). Если method=»post», передаются вместе с запросом так, что внешне передача переменных не заметна. В вызываемой программе безразлично, какой метод изпользовался (почти). Если у вас нет специальных аргументов за метод GET, используйте метод POST.

Формы

Формы HTML используются для организации диалога с пользователем. Поддерживаются стандартные элементы управления. Все многообразие задается немногими тэгами:

  • INPUT (с параметром TYPE=)
  • SELECT
  • TEXTAREA

Описание – в документации по HTML.

Взаимосвязь между отдельными страницами

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

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

ASP, используя cookies, предоставляет программисту более простое средство — объект Session (сессия). Сессия стартует, когда новый пользователь обращается к любому asp-файлу приложения. Сессия заканчивается при отсутствии активности пользователя в течение 20 минут, либо по явной команде. Специальный объект Session хранит состояние сессии. Туда можно записывать переменные, которые доступны из любой страницы в этой сессии. Записать данные в этот объект можно просто:

Считать потом еще проще:

Сессия, таким образом, – это еще один метод передачи данных между страницами. Одна страница пишет данные в сессию, другая – берет потом оттуда.

Наряду с объектом Session существует объект Application . Если сессия создается для каждого нового пользователя, до Application существует в единственном экземпляре, и может использоваться всеми страницами приложения.

Управление приложением

Программисту предоставляется возможность реагировать на 4 события: старт/стоп приложения и старт/стоп каждой сессии. Для реализации этих событий предназначен файл global.asa , который должен располагаться в корневом каталоге приложения. Вот его примерный скелет:

Нужно «просто» вписать Ваш код на соответствующее место. Нужно заметить, что отлаживать код для global.asa довольно непросто, так как он выполняется при очень специфических обстоятельствах (к примеру при старте или остановке сервера).

Использование внешних компонент

Если на сервере установлены дополнительные компоненты, их можно использовать из ASP. Стандартные объекты (например из библиотек ADO (Connection и Recordset) и Scripting (Dictionary, FileSystemObject)) доступны всегда. Установка новой компоненты обычно состоит в копировании dll-файла в каталог на сервере и ее регистрации с помощью программы regsvr32.exe. [В COM+ используется своя процедура инсталляции объектов, это однако не влияет на использования объектов.]

Создать экземпляр объекта можно так:

Class.Object указываются в документации на компоненту. В переменной var запоминается ссылка на созданный экземпляр объекта. Когда объект не нужен, ссылку нужно обнулить с помощью команды:

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

В остальном использование компоненты зависит от самой этой компоненты.

Работа с базами данных

Из ASP можно легко и просто работать с любыми базами данных. Это делается через две промежуточные технологии: ODBC и ADO.

ODBC позволяет организовать доступ к любым базам данных через унифицированный интерфейс с помощью языка SQL. Специфика конкретных СУБД учитывается при помощи специальных драйверов БД. Такие драйверы существуют для всевозможных СУБД (в частности SQL Server, Oracle, Access, FoxPro). Поддержка ODBC обеспечивается на уровне операционной системы Windows (NT). Настройка – через Control Panel/ODBC. Базовым понятием является источник данных или data source. Источник данных – это совокупность сведений о базе данных, включая ее драйвер, имя компьютера и файла, параметры. Чтобы пользоваться базой надо создать источник данных для нее. Важно, чтобы источник данных был «системным», в отличии от «пользовательского». После этого надо лишь знать имя источника данных. [В настоящее время ODBC отступает перед натиском технологии OLE DB. На практике это однако практически ничего не изменяет. Вместо имени источника данных нужно использовать Connection String, в которой указывается имя ODBC-драйвера и все его параметры.]

ADO – это совокупность объектов, доступных из ASP, позволяющих обращаться к источнику данных ODBC [или OLE DB]. Фактически нужны лишь 2 объекта – Connection , представляющий соединение с базой данных и Recordset , представляющий набор записей, полученный от источника. Сначала необходимо открыть соединение, потом к нему привязать Recordset, потом, пользуясь методами Recordset’а, обрабатывать данные. Вот пример:

Если команда SQL не возвращает данных, recordset не нужен, надо пользоваться методом Conn. Execute (SQL_COMMAND).

Если Вы хотите вызывать хранимые процедуры сервера БД с параметрами, нужно воспользоваться объектом Command , который в свою очеред содержит объекты Parameter .

Методики программирования, советы


Описание переменных

VBScript — очень нетребовательный к программисту язык. Так он не требует описывать переменные и не содержит явных типов данных. Все переменные принадлежат одному типу Variant . Из-за отсутствия описаний могут произойти очень трудно обнаруживаемые ошибки. Одна опечатка может стоить полдня поисков.

Однако, есть возможность явно потребовать описания переменных. Для этого первой строкой в ASP-файле нужно написать Option Explicit . После этого обращение к переменной, которая не была объявлена с помощью Dim , вызывает ошибку с указанием номера строки.

Кстати, где расположены описания Dim в процедуре — совершенно не важно. Они могут стоять как до использования переменной, так и после, и даже в цикле. Видимо они отрабатываются препроцессором. Явно задать тип переменной с помощью Dim Var as Typ , как в Visual Basic, все равно нельзя.

Чередование ASP/HTML

Если нужно выдать большой кусок HTML, можно не пользоваться Response.Write. Если в asp-файле встречается кусок текста вне скобок , он трактуется просто как HTML, который надо вывести. Пример:

Обработка ошибок

Для отслеживания ошибок используется специальный объект Err . Он устанавливается в ненулевое значение, если предыдущая команда породила ошибку. Ее можно проверять с помощью If, и таким образом реагировать на ошибки. Чтобы из-за ошибки не прерывалось выполнение программы, в начале нужно включить команду

Включение других файлов

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

Важно: все includes в тексте отрабатываются до исполнения файла. Т.е. даже если include стоит внутри if, то сначала будут включены все includes во всех ветках, и только потом, во время исполнения, будет принятно решение, какую ветку выполнять. Т.е. следующий код не дает условного включения файлов:

Обработка форм

Если надо что-то спросить у пользователя и на основании этого что-то сделать, в простейшем случае создается два файла: один с формой, второй – с ее обработчиком. Обработчик выполняет все действия. Пример:

Рекурсивная обработка форм

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

Переменные HTTP

Запрос от браузера, кроме запрашиваемой страницы несет еще некоторые данные. Эти данные, например, IP-адрес клиента, доступны через специальные переменные объекта Request. IP-адрес – Request(«REMOTE_ADDR»). Другие — см.документацию (ASPSamp\Samples\srvvar.asp).

Переадресация

Очень легко написать на ASP скрипт, который будет производить некоторые расчеты, и в зависимости от результатов переадресовывать браузер на разные URL (например, подставлять нужный баннер). Делается это так:

Только надо следить, чтобы до выполнения команды redirect ничего не было записано в Response (даже коментарии HTML).

Электронная почта

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

Но это приводит к тому, что при отправке формы делается попытка на клиентской машине запустить почтовую программу и создать новое сообщение с данными формы. Если это не получается (почтовая программа не настроена, пользователь не отправил почту, и т.д.) — письмо и не будет отправлено. Гораздо надежнее работает серверное решение.

Для этого существуют внешние компоненты, есть и бесплатные. Например, компонента Jmail от Dimac. Все, что для нее нужно – это адрес SMTP-сервера. Вот пример ее использования:

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL