Объект приложения
Объект приложения — это объект уровня приложения, используемый для обмена информацией между всеми пользователями и сохранения данных во время работы веб-приложения.
Свойства приложения:
Вот как:
Объект Application не имеет встроенных свойств, но мы можем создавать свои собственные свойства.
<% Application("имя свойства")=значение%>
Фактически, большинство переменных приложения хранятся в коллекции Contents. Когда вы создаете новую переменную Application, вы фактически добавляете элемент в коллекцию Contents. Следующие два сценария эквивалентны:
<% Application("greeting")="hello!" %> или <% Application.contents("greeting")="hello!" Поскольку переменные приложения существуют в коллекции, если вы хотите отобразить их все, у нас есть много раз, например цикл For Each.
<%
Для каждого элемента в приложении.Содержание
Response.write("<br>"&item&Application.Contents(item))
следующий
%>
Метод применения:
Приложение имеет только два метода: один — «Заблокировать», а другой — «Разблокировать». Метод блокировки используется для обеспечения того, чтобы только один пользователь мог одновременно работать с Приложением. Разблокировка используется для отмены ограничений метода Lock. нравиться:
<%
Приложение.Блокировка
Приложение("visitor_num")=Приложение("visitor_num")+1
Приложение.Разблокировка
%>
События приложения:
1.Приложение_OnStart()
Вызывается при запуске приложения событий.
2. Приложение_OnEnd()
Это событие вызывается, когда приложение завершает работу.
Эти два процесса событий должны быть определены в файле Global.asp. Обычно функция подключения данных определяется в этих двух событиях, а затем помещается в Global.asp. Например:
Подприложение_OnStart
Application("tt18_ConnectionString") = "driver={SQL
Сервер};server=jeff;uid=sa;pwd=;database=test"
Конец субтитра
Массив можно определить как объект приложения, но этот массив можно сохранить только как объект, и его значение нельзя получить с помощью приложения (0). Вы можете определить временный массив для достижения этой функции. нравиться:
<%
диммассив()
Массив=Приложение("массив")
для i = 0 до ubound (массив)
Response.write Массив(i)
следующий я
%>
Чтобы изменить объект «Приложение», вы также можете определить временный массив, назначить объект «Приложение» массиву, затем изменить элементы массива и, наконец, назначить массив обратно объекту «Приложение». нравиться:
<%
диммассив()
Массив=Приложение("массив")
Массив(0)="Джефф"
Массив(1)="жу"
Приложение.lock
Приложение("массив")=Массив
Приложение.разблокировка
%>
Объект ObjectContext
Этот объект используется для управления обработкой транзакций Active Server Pages. Обработкой транзакций управляет Microsoft Transaction Server (MTS).
Событие
ObjectContext.OnTransactionAbort
вызывается событием прерванной транзакции и происходит после завершения обработки сценария.
ObjectContext.OnTransactionCommit
запускается в случае успешного события транзакции и происходит после завершения обработки сценария.
Метод
ObjectContext.SetAbort
явно прерывает транзакцию.
ObjectContext.SetComplete
переопределяет любой предыдущий вызов метода ObjectContext.SetAbort.
Объект запроса
Объект Request используется для приема всей информации во всех запросах, отправленных из браузера на ваш сервер.
Коллекция
Request.ClientCertificate(key[SubField])
Коллекция информации обо всех клиентских сертификатах. Для Key коллекция имеет следующие ключевые слова:
Тема
Предмет сертификата. Содержит всю информацию о получении сертификатов. Может использоваться со всеми суффиксами субдоменов.
Эмитент
Эмитент сертификата. Содержит всю информацию о проверке сертификата. Может использоваться со всеми суффиксами субдоменов, кроме CN.
ВадидОт
Дата выдачи сертификата. Используйте формат VBScript.
Действителен до
Сертификат больше не действителен.
Серийный номер
Содержит серийный номер сертификата.
Сертификат
Двоичный поток, содержащий все содержимое сертификата, в формате ASN.1.
Для подполя ключевые слова «Тема» и «Эмитент» могут иметь следующий суффикс поддомена: (например: «SubjectOU» или « IssuerL»)
C
Страна происхождения.
О
Название компании или организации.
ОУ
организационная единица.
RU
Обычное имя пользователя.
л
Частично.
С
Штат (или провинция).
Т
Должность человека или компании.
ГН
собственное имя.
я
исходный.
Когда файл cervbs.inc (используемый VBScript) или cerjavas.inc (используемый Jscript) включается в вашу страницу активного сервера с помощью директивы #INCLUDE, можно использовать следующие два флага:
ceCertPresent
Указывает, существует ли сертификат клиента, его значение — TRUE или FALSE.
ceUnrecongnizedIssure
Указывает, неизвестен ли эмитент последнего сертификата в списке, его значение — TRUE или FALSE.
Request.Cookies(Cookie[(key).Attribute])
Коллекция файлов cookie. Разрешить получение файлов cookie браузера. Cookie указывает, какой файл cookie следует вернуть. Ключ используется для возврата значения Cookie с определенным ключевым словом из словаря Cookie. Для атрибута вы можете использовать атрибут HasKeys, чтобы определить, есть ли у файла cookie подразделы. Значение HasKeys — TRUE или FALSE.
Request.Form(Parameter)[(Index).Count]
заполняет коллекцию всех данных в HTML-форме. Параметр — это имя элемента в форме HTML. Индекс используется, когда параметр имеет более одного значения (например, при использовании атрибута MULTIPLE в <SELECT>). Если параметр имеет несколько значений, Count указывает количество нескольких значений.
Request.QueryString(Varible)[(Index).Count]
Коллекция всех значений строки запроса. Переменная — это имя переменной в строке запроса. Индекс используется, когда переменная имеет более одного значения. Если параметр имеет несколько значений, Count указывает количество значений.
Request.ServerVaribles (переменная среды сервера)
Коллекция переменных среды. Позволяет читать заголовки HTTP. Вы можете прочитать любую информацию заголовка, используя префикс HTTP_. Например, HTTP_USER_AGENT принимает HTTP-заголовок Client-Agent (тип браузера). В противном случае вы можете получить любую информацию о среде, используя переменные, показанные в таблице ниже.
ALL_HTTP
Все HTTP-заголовки, отправленные клиентом, и его результаты имеют префикс HTTP_.
ВСЕ_RAW
Все заголовки HTTP, отправленные клиентом, имеют тот же результат, что и при отправке клиентом, без префикса HTTP_
APPL_MD_PATH.
Путь к метабазе приложения.
APPL_PHYSICAL_PATH
Физический путь, соответствующий пути метабазы приложения.
АУТ_ПАРОЛЬ
Пароль, введенный клиентом в диалоговом окне пароля при использовании базового режима аутентификации.
AUTH_TYPE
Это метод аутентификации, используемый сервером для проверки пользователей при доступе к защищенным сценариям.
AUTH_USER
Имя пользователя для проверки.
CERT_COOKIE
Уникальный идентификационный номер сертификата клиента.
CERT_ФЛАГ
Флаг сертификата клиента. Если сертификат клиента имеется, бит 0 равен 0. Если проверка сертификата клиента недействительна, бит 1 устанавливается в 1.
CERT_ISSUER
Поле эмитента в сертификате пользователя.
CERT_KEYSIZE
Число бит ключевого слова соединения Secure Socket Layer, например 128.
CERT_SECRETKEYSIZE
Количество цифр в закрытом ключе, который проверяет сервер. Например, 1024.
CERT_SERIALNUMBER
Поле серийного номера сертификата клиента.
CERT_SERVER_ISSUER
Поле эмитента сертификата сервера
CERT_SERVER_SUBJECT.
Поле субъекта сертификата сервера.
CERT_SUBJECT
Поле субъекта сертификата клиента.
CONTENT_LENGTH
Длина контента, отправленного клиентом.
CONTENT_TYPE
Содержимое формы, отправленное клиентом, или тип данных HTTP PUT.
ШЛЮЗ_ИНТЕРФЕЙС
Интерфейс шлюза, используемый сервером.
HTTPS
Возвращает ON, если запрос прошел по защищенному каналу (SSL). Если запрос поступает из незащищенного канала, верните OFF.
HTTPS_KEYSIZE
Число бит ключевого слова соединения Secure Socket Layer, например 128.
HTTPS_SECRETKEYSIZE
Количество цифр в закрытом ключе, который проверяет сервер. Например, 1024.
HTTPS_SERVER_ISSUER
Поле эмитента сертификата сервера.
HTTPS_SERVER_SUBJECT
Поле субъекта сертификата сервера.
INSTANCE_ID
Идентификатор экземпляра IIS.
INSTANCE_META_PATH
Путь к метабазе экземпляра IIS, ответившего на запрос.
LOCAL_ADDR
Возвращает адрес сервера, принявшего запрос.
LOGON_USER
Пользователь входит в Windows NT с учетной записью
PATH_INFO.
Информация о пути, предоставленная клиентом.
PATH_TRANSLATED
Путь, полученный путем сопоставления виртуального с физическим.
QUERY_STRING
Содержимое строки запроса.
REMOTE_ADDR
IP-адрес удаленного хоста, отправляющего запрос.
УДАЛЕННЫЙ_ХОСТ
Имя удаленного хоста, с которого был сделан запрос.
REQUEST_METHOD
Способ подачи запроса. Такие как GET, HEAD, POST и т. д.
СКРИПТ_ИМЯ
Имя исполняемого скрипта.
СЕРВЕР_ИМЯ
Имя хоста, DNS-адрес или IP-адрес сервера.
СЕРВЕР_ПОРТ
Номер порта сервера, принимающего запросы.
SERVER_PORT_SECURE
Если порт сервера, принимающий запрос, является безопасным портом, он равен 1, в противном случае — 0.
СЕРВЕР_ПРОТОКОЛ
Имя и версия протокола, используемого сервером.
SERVER_SOFTWARE
Имя и версия серверного программного обеспечения, которое отвечает на запросы и запускает шлюз.
URL-адрес
Укажите основную часть URL-адреса.
Метод
Request.BinaryRead(Count)
получает необработанное содержимое HTML-формы. При вызове этого метода Count указывает, сколько байтов нужно получить. После вызова этого метода Count указывает, сколько байт было фактически получено.
Свойство
Request.TotalBytesДлина
тела запроса в байтах.
Объект Response
Объект Response используется для отправки данных в клиентский браузер. Пользователи могут использовать этот объект для отправки данных сервера в клиентский браузер в формате HTML. It и Request образуют пару объектов для получения и отправки данных. основа достижения динамики. Его часто используемые свойства и методы представлены ниже.
1. Атрибут буфера. Этот атрибут используется для указания того, следует ли использовать буфер при выводе страницы. Значение по умолчанию — False. Если это значение равно True, результаты не будут выводиться в браузер до тех пор, пока не будет выполнена вся страница активного сервера. нравиться:
<%Response.Buffer=True%>
<html>
<Голова>
<title>Пример буфера</title>
</голова>
<тело>
<%
для я = от 1 до 500
response.write(i & "<br>")
следующий
%>
</тело>
</html>
При выполнении этой страницы все содержимое всей домашней страницы будет отображаться в браузере одновременно, а домашняя страница будет храниться в кеше до завершения выполнения скрипта.
2. Атрибут Expires Этот атрибут используется для установки продолжительности времени (в минутах), в течение которого браузер кэширует страницу и должен обновляться на стороне сервера. Со следующими настройками:
<%Response.Expires=0%>
При добавлении этой строки кода в файл ASP каждый запрос должен обновлять страницу, поскольку срок действия страницы истечет, как только будет получен ответ.
3. Метод записи. Этот метод отправляет данные в клиентский браузер, например:
<%Response.write "Привет, мир!"%>
4. Метод перенаправления. Этот метод позволяет браузеру перейти на другой URL-адрес. Таким образом, когда клиент делает веб-запрос, тип браузера клиента определяется, и клиент перемещается на соответствующую страницу. нравиться:
<html>
<голова>
<title>Пример перенаправления</title>
</голова>
<тело>
<form aciton="formjump.asp" метод="post">
<select name="куда пойти">
<option selected value="fun">Весело</option>
<option value="news">Новости</option>
<option value="sample">Пример</option>
</выбрать>
<input type=submit name="jump" value="Jump">
</форма>
</тело>
</html>
Выше представлена отправленная форма, а ниже — файл formjump.asp, который обрабатывает форму:
<%response.buff=true%>
<html>
<голова>
<title>Пример перенаправления</title>
</голова>
<тело>
<%
thisurl=" http://www.tinyu.com/ ";
где = Request.form («куда идти»)
Выберите Случай, когда
дело "весело"
response.redirect thisurl и "/fun/default.asp"
дело "новости"
response.redirect thisurl & "/news/default.asp"
чехол "образец"
response.redirect thisurl & "/sample/default.asp"
Конец выбора
%>
</тело>
<html>
В этом примере, когда пользователь делает выбор, он нажимает кнопку «Перейти», чтобы отправить форму. После получения приложения сервер вызывает formjump.asp, чтобы определить и найти соответствующий URL-адрес. Однако здесь следует отметить, что заголовок HTTP был записан в браузер клиента. Любое изменение заголовка HTTP должно быть выполнено до записи содержимого страницы. При возникновении этой проблемы вы можете сделать следующее:
В начале файла после <@Language=..> напишите:
Response.Buffer=Истина
Решите в конце:
Ответ.Flush
Flush здесь — это метод Response, который можно использовать только в том случае, если для свойства Buffer установлено значение True, в противном случае будет сгенерирована ошибка режима выполнения. Другой метод Clear также используется для очистки кэшированных страниц. Его также можно использовать, когда для свойства Buffer установлено значение True.
5. Метод завершения. Этот метод используется для указания Active Server прекратить обработку файлов ASP при обнаружении этого метода. Если для свойства Buffer объекта Response установлено значение True, метод End отправит содержимое кэша клиенту и очистит буфер. Таким образом, чтобы отменить весь вывод клиентам, вы можете сначала очистить буфер, а затем использовать метод End. нравиться:
<%
Response.buffer=истина
При ошибке продолжить дальше
Ошиб.очистить
если номер ошибки<>0, то
Ответ.Очистить
Ответ.Конец
конец, если
%>
Объект сервера:
объект сервера обеспечивает доступ к методам и свойствам на сервере. Большинство этих методов и свойств служат служебными функциями.
Синтаксис
Server.property|
свойство
методаScriptTimeout:
Свойство ScriptTimeout указывает максимальное время, в течение которого сценарий может выполняться до завершения. При работе с серверными компонентами ограничение по таймауту больше не будет действовать.
Синтаксис Server.ScriptTimeout = NumSeconds
Параметр NumSeconds
Указывает максимальное количество секунд, в течение которых сценарий может выполняться до его завершения сервером. Значение по умолчанию — 90 секунд.
Примечание. Вы можете установить значение ScriptTimeout по умолчанию для веб-службы или веб-сервера, используя свойство AspScriptTimeout в метабазе. Свойство ScriptTimeout не может быть установлено меньше значения, указанного в метабазе. Например, если для NumSeconds установлено значение 10, а параметр метабазы содержит значение по умолчанию, равное 90 секундам, время выполнения сценария истечет через 90 секунд. Но если для NumSeconds установлено значение 100, время выполнения сценария истекает через 100 секунд.
Дополнительные сведения об использовании метабазы см. в разделе О метабазе.
Пример В следующем примере время ожидания истекает, если серверу требуется более 100 секунд для обработки сценария.
<% Server.ScriptTimeout = 100 %>
В следующем примере получается текущее значение свойства ScriptTimeout и сохраняется в переменной TimeOut.
<% TimeOut = Server.ScriptTimeout %>
Метод
CreateObject
Метод CreateObject создает экземпляр серверного компонента. Если компонент выполняет методы OnStartPage и OnEndPage, в это время будет вызван метод OnStartPage. Дополнительные сведения о компонентах сервера см. в разделе Устанавливаемые компоненты ASP.
Синтаксис Server.CreateObject( progID )
Параметр progID указывает тип создаваемого объекта. Формат progID: [Вендор.] компонент[.Версия].
Примечание. По умолчанию объекты, созданные методом Server.CreateObject, имеют область действия страницы. Это означает, что сервер автоматически уничтожит эти объекты после обработки текущей страницы ASP. Чтобы создать объект в области сеанса или приложения, вы можете использовать тег <OBJECT> и установить атрибут SCOPE для SESSION или APPLICATION или сохранить объект в переменных сеанса и приложения.
Например, в сценарии, показанном ниже, при уничтожении объекта сеанса, то есть при истечении времени разговора или вызове метода Abandon, объекты, хранящиеся в переменных сеанса, также будут уничтожены.
<% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>
Вы можете уничтожить объект, установив для переменной значение Nothing или новое значение, как показано ниже. В первом примере объект объявления освобождается, а во втором примере объявление заменяется строкой.
<% сеанса («объявление») = ничего %>
<% Session ("ad") = "Другое значение" %>
Экземпляр объекта с тем же именем, что и встроенный объект, создать невозможно. Например, следующий скрипт вернет ошибку.
<% Set Response = Server.CreateObject("Response") %>
Пример <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
В приведенном выше примере создается серверный компонент MSWC.AdRotator с именем MyAd. Компонент MSWC.AdRotator можно использовать для автоматической ротации объявлений на веб-страницах.
Дополнительные сведения о компонентах сервера см. в разделе Создание компонентов для ASP.
Метод HTMLEncode применяет кодировку HTML к указанной строке.
Синтаксис Server.HTMLEncode(string)
Параметр string определяет строку, подлежащую кодированию.
Пример сценария <%= Server.HTMLEncode("Тег абзаца: <P>") %>
Вывод Тег абзаца: <P>
Обратите внимание, что приведенный выше вывод будет отображаться веб-браузером как Тег абзаца: <P>If вы просматриваете исходный файл или открываете веб-страницу в текстовом режиме и видите закодированный HTML.
MapPath
Метод MapPath сопоставляет указанный относительный или виртуальный путь с соответствующим физическим каталогом на сервере.
грамматика
Параметр
Server.MapPath(Path)
Путь
Укажите относительный или виртуальный путь к физическому каталогу, который необходимо сопоставить. Если Path начинается с косой черты (/) или обратной косой черты (), метод MapPath обрабатывает Path как полный виртуальный путь при возврате пути. Если путь не начинается с косой черты, метод MapPath возвращает путь относительно существующего пути в файле .asp.
Комментарий
Метод MapPath не поддерживает синтаксис относительного пути (.) или (..). Например, следующий относительный путь ../MyDir/MyFile.txt возвращает ошибку.
Метод MapPath не проверяет, правильный ли возвращенный путь или существует ли он на сервере.
Поскольку метод MapPath сопоставляет пути только независимо от того, существует ли указанный каталог, вы можете сначала использовать метод MapPath для сопоставления пути с физической структурой каталогов, а затем передать его компоненту, который создает указанный каталог или файл на сервере.
Пример В следующем примере файл data.txt и файл test.asp, содержащий следующий сценарий, расположены в каталоге C:InetpubWwwrootScript. Каталог C:InetpubWwwroot устанавливается в качестве домашнего каталога сервера.
В следующем примере серверная переменная PATH_INFO используется для сопоставления физического пути с текущим файлом. сценарий
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
Вывод
c:inetpubwwwrootscripttest.asp<BR>
Поскольку параметры пути в следующих примерах не начинаются с косой черты, они относительно сопоставляются с текущим каталогом, в данном случае C:InetpubWwwroot Скрипт. сценарий
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
Вывод
c:inetpubwwwrootscriptdata.txt<BR>
c:inetpubwwwrootscriptscriptdata.txt<BR>
В следующих двух примерах используется косая черта, чтобы указать, что возвращаемый путь следует рассматривать как полный виртуальный путь на сервере. сценарий
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("script")%><BR>
Вывод
c:inetpubscriptdata.txt<BR>
c:inetpubscript<BR>
В следующем примере показано, как использовать косую черту (/) или обратную косую черту () для возврата физического пути к каталогу хоста. сценарий
<%= server.mappath("/")%><BR>
<%= server.mappath("")%><BR>
Вывод
c:inetpubwwwroot<BR>
c:inetpubwwwroot<BR>
URLEncode
Метод URLEncode применяет правила кодирования URL-адресов, включая escape-символы, к указанной строке.
грамматика
Server.URLEncode(строка)
параметр
String указывает строку для кодирования.
Пример сценария <%Response.Write(Server.URLEncode(" http://www.tinyu.com ";)) %>
вывод http%3A%2F%2Fwww%2Etinyu%2Ecom
Объект Session
Session на самом деле относится к периоду времени с момента, когда посетитель попадает на определенную домашнюю страницу, до момента, когда он уходит. Каждый посетитель получит отдельную сессию. В веб-приложении, когда пользователь обращается к приложению, переменные типа сеанса могут использоваться пользователем для совместного использования данных на всех страницах веб-приложения, если другой пользователь одновременно обращается к веб-приложению, у него также есть свои собственные; Переменные сеанса, но информация не может быть разделена между двумя пользователями через переменные сеанса, в то время как изменения типа приложения могут передавать информацию на всех страницах между несколькими пользователями сайта.
1. Атрибут SessionID. Этот атрибут возвращает уникальный идентификатор текущего сеанса и присваивает разный номер каждому сеансу.
Однажды я столкнулся с проблемой пользовательского контроля в процессе разработки. Функция, которую он хочет достичь, заключается в том, что для модуля определенного веб-сайта, когда участник просматривает этот модуль после входа в систему, а другой человек входит в систему с тем же именем участника, он не может просматривать этот модуль. Другими словами, только один человек с одним именем участника может одновременно просматривать этот модуль. Я реализовал элемент управления, используя имя члена (предположительно уникальное UserID) и SessionID. Когда участник входит в систему, дайте ему сеанс для записи статуса входа, например: Session("Status")="Logged", и запишите Session.SessionID участника в базу данных. Когда он хочет просмотреть этот модуль, он сначала определяет, вошел ли он в систему. Если он уже вошел в систему, он определяет, совпадает ли его идентификатор сеанса с записанным в базе данных. Если он другой, он не может получить к нему доступ. Таким образом, когда другой пользователь входит в систему с тем же именем участника, новый SessionID записывается в базу данных, и первый не может пройти проверку при обращении к этому модулю. Это позволяет только одному человеку с одним именем участника одновременно просматривать определенный модуль. Эта функция оказывает особое влияние на некоторые платные веб-сайты. Она предотвращает проблему просмотра одного имени участника несколькими людьми и защищает интересы компании.
2. Атрибут TimeOut Этот атрибут используется для определения ограничения по времени объекта сеанса пользователя. Если пользователь не обновит веб-страницу в течение указанного времени, объект Session будет прекращен. Общее значение по умолчанию — 20 минут.
3. Метод отмены. Этот метод является единственным методом объекта Session. Он может очистить объект Session и используется для удаления объекта Session пользователя и освобождения ресурсов, которые он занимает. Например: <% Session.Abandon %>
4. События Session_OnStart и Session_OnEnd аналогичны событиям Application. Событие Session_OnStart запускается каждый раз при запуске подпрограммы объекта, а затем запускается обработка события Session_Onstart. То есть, когда сервер получает HTTP-запрос на URL-адрес в приложении, срабатывает это событие и устанавливается объект сеанса. Таким же образом это событие необходимо задать и в файле Global.asa.
Когда вызывается метод Session.Abandon или в течение времени TimeOut не происходит обновления, это вызывает событие Session_OnEnd, а затем внутри него выполняется скрипт. Переменные сеанса связаны с конкретными пользователями. Переменные сеанса, назначенные определенному пользователю, полностью независимы от переменных сеанса других пользователей и не влияют друг на друга.
Сессия применяет столбец:
Как и приложение, массив, определенный как тип сеанса, может обрабатывать весь массив только как объект, и пользователи не могут напрямую изменять значение элемента в массиве сеанса. Чтобы создать массив сеансов, вам необходимо сначала определить обычный массив, присвоить начальное значение каждому его элементу и, наконец, определить его как массив сеансов. нравиться:
<%
Димаррей ()
array=array("李","明","男")
Сессия("информация")=массив
Response.write Session("info")(0) &"-"
Response.write Session("info")(1) &"-"
Response.write Session("info")(2) &"<br>"
%>
<час>
<%
массив(0)="день"
массив(1)="Ю"
массив(2)="Мужской"
Сессия("информация")=массив
Response.write Session("info")(0) & "-"
Response.write Session("info")(1) & "-"
Response.write Session("info")(2) & "<br>"
%>