В предыдущей статье автор подробно представил два очень практических метода использования приложения и сеанса встроенных объектов ASP. Поскольку в файле Global.ASA должны быть объявлены как сценарии событий, так и на Onend, в этой статье подробно рассказывается, как использовать файл Global.ASA. Чтобы все могли освоить знания, которые они узнали до сих пор, эта статья также будет включать программу ASP Chat для вашей ссылки.
Недавно многие друзья прислали мне письмо, чтобы спросить меня, почему есть такие и такие ошибки при запуске программы примеров в первых двух выпусках. Прежде всего, я хочу заявить вам, что эти программы написаны мной и прошли квалификационную проверку, прежде чем покинуть завод, и нет поддельных и дрянных продуктов. :) Поскольку в программе используются файлы cookie для записи информации о клиентах, если вы не устанавливаете принять куки в своем браузере, программа не будет работать нормально. Кроме того, метод, используемый программой для записи информации о клиенте в файлах cookie, является ответом. Cookie. Http Если информация о заголовке HTTP была передана клиенту, если ответ. Cookie используется после того, как информация о заголовке HTTP была передана клиенту, появится следующая ошибка: заголовок HTTP был записан в браузер клиента. Любая модификация заголовка HTTP должна быть перед тем, как написать в содержание страницы. Некоторые друзья не могут обращать внимания при обрезке программы, нарушая порядок до и назад программы или неправильно добавление HTML -кода перед программой примера ASP, что приводит к ошибке в запуске программы. Поэтому я предполагаю, что, с одной стороны, не вносит никаких изменений в программу при запуске рутины, и пытаться постепенно улучшить ее на основе понимания программы. Вы должны, по крайней мере, выбрать приемлемые файлы cookie в браузере.
Далее я представлю вас, как использовать файл Global.ASA.
Что такое файл Global.ASA? На самом деле это необязательный файл, в котором писатель программы может указать сценарии событий и объявлять объекты с помощью сеанса и приложений. Содержание этого файла не используется для отображения пользователю, а для хранения информации о событиях и объектах, используемых во всем мире приложением. Имя файла должно быть Global.asa и должно храниться в корневом каталоге приложения. Каждое приложение может иметь только один файл Global.ASA.
В файле Global.ASA, если включенный скрипт не инкапсулирован с тегом <script> или определенным объектом не имеет сессии или приложения, сервер возвращает ошибку. Мы можем написать сценарии, включенные в файл Global.ASA на любом языке с поддержкой сценария. Если несколько событий находятся на одном языке сценариев, они могут быть организованы в наборе тегов <cript>.
Процесс, объявленный в файле Global.ASA, можно вызвать только из одного или нескольких сценариев, связанных с событиями Application_onstart, Application_onend, Session_onstart и Session_onend. Они недоступны на странице ASP на основе ASP. Если вы хотите поделиться процедурами между приложениями, вы можете объявить их в отдельном файле, а затем использовать оператор включения на стороне сервера (SSI), чтобы включить файл в программу ASP, которая вызывает процедуру. Как правило, расширение содержащегося файла должно быть .inc.
Вот очень стандартный файл Global.ASA:
<Script language = vbscript runat = server>
'Session_onstart работает, когда клиент сначала запускает любую страницу в приложении ASP
'Session_onend работает, когда сеанс клиента истекает или выходит из приложения
'Application_onstart работает, когда любой клиент сначала обращается к домашней странице приложения
'Application_onend работает, когда веб -сервер сайта не работает
< /Script>
<Script language = vbscript runat = server>
Sub Application_onstart
Visitorcountfilename = server.mappath ( /ex2) + /visitcount.txt
Set fileObject = server.createObject (scripting.filesystemobject)
SET OUT = fileObject.OpentextFile (visitorCountFilename, 1, false, false)
Приложение (посетители) = out.readline
Приложение (VisitorCountFilename) = VisitorCountFilename
Конец суб
'============================================================================ ================= ==========
Sub Application_onend
Set fileoutobject = server.createObject (scripting.filesystemobject)
SET OUT = fileOutObject.createTextFile (Application (VisitorCountFilEname), TRUE, FALSE)
Out.writeline (приложение (посетители))
Конец суб
'============================================================================ =========================== Sub session_onstart
Session.Timeout = 5
Приложение (посетители) = приложение (посетители) + 1
Session (id) = session.sessionid
Конец суб
< /Script>
В этой программе Global.ASA участвует компонент доступа к файлу ASP, которая предоставляет методы, свойства и коллекции для доступа к файловой системе. Это будет обсуждаться в будущих компонентах ASP. Здесь он служит для создания новых файлов на сервере и записи в файлы. На самом деле это глобальный файл приложения ASP Page Access. Путь и содержание файла в переменных уровня приложения. Когда какой-либо клиент обращается к любой странице в приложении ASP, определение процесса session_onstart автоматически добавляет значение посетителей переменной на уровне приложения. Таким образом, всякий раз, когда клиент посещает страницу, посетители переменной будут автоматически добавлены в функцию подсчета скорости клика. Поскольку значение посетителей переменной сохраняется в системной памяти, если сервер выключен или перезапущен, данные, хранящиеся в переменной, будут автоматически потеряны. Сервер выключен или перезапущен.
После этого периода обучения я считаю, что все смогли использовать встроенные объекты ASP, мы научились писать некоторые более простые приложения ASP. Разработать некоторые простые, но практические приложения ASP. Позвольте мне дать вам очень простую программу для веб -чата ASP. Возможно, друзья видели, как писать программы ASP в некоторых журналах, но автор написал здесь более простую программу, используя только один файл .asp. Пожалуйста, зарегистрируйте следующий код в блокноте и сохраните его как чат.asp.
< %@ Language = vbscript %>
< %
Response.buffer = true 'Установите выходной кэш для отображения разных страниц.
При ошибке резюме следующее 'Игнорируйте часть ошибки программы
Если запрос.servervariables (request_method) = get then
'Определите, как клиент запрашивает веб -страницу
'------------------------------------------------- ------------------------------------------------------ ---------------------------
'Интерфейс входа в систему клиента
'------------------------------------------------- ------------------------------------------------------ ---------------------------
%>
<form method = post action = cath.asp> <p>
<input type = text name = nick size = 20 value = nick style = фоновый цвет: rgb (192,192,192)> <br>
<input type = propect = введите имя чата = B1 Style = Color: RGB (255,255,0);
<p> <input type = hidden name = log size = 20 value = 1> <br> </p>
< /form>
< %
Ответ.
Еще
Response.clear 'Очистить контент в кэше
тусклый разговор
Если запрос.form (nick) <> then
'Определите, находится ли клиент в интерфейсе чата
Session (nick) = request.form (nick)
Конец, если
'------------------------------------------------- ------------------------------------------------------ ---------------------------
Интерфейс чата клиента
'------------------------------------------------- ------------------------------------------------------ ---------------------------
%>
<form method = post action = chat.asp name = form1> <p> < %= session (nick) %> говорить: <input type = text name = talk size = 50> <br>
<input type = отправить значение = отправить имя = b1>
<input type = сброс значения = name cancel = b2> </p>
< /form>
<A href =/asptest/shusheng/chat.asp> оставить <//a> <br> <br>
< %
Если запрос.form (log) <> 1 then
Если trim (request.form (talk)) = then
'Определите, не ввел ли пользователь ничего
Talk = Session (nick) и молчание - золото.
Еще
talk = trim (request.form (talk))
'Снимите пространство после персонажа
Конец, если
Application.lock
Application (show) = <table border = '0' cellpadding = '0' cellpacing = '0' width = '85%'> <tr> <td width =' 100%'bgcolor ='#c0c0c0 '> < /td > < /tr> <tr> <td width = '100%' bgcolor = '#c0c0c0'> < /td> < /tr> < /table> <br> & application (show)
Application.unlock
Response.write Приложение (Show)
Конец, если
Конец, если
%>
Давайте проведем пошаговый анализ этой программы чата.
Прежде всего, поскольку все клиенты в чате должны иметь возможность обмениваться информацией, неизбежно использовать объект с переменными на уровне приложения. -Люль. Мы можем использовать объект запроса, который мы научились, чтобы ввести разговор, введенный клиентом, и сохранить его в разговоре с переменной, а затем хранить значение разговора в показании переменных на уровне приложения, следующим образом:
< % Application (show) = Talk & Application (Show) %>
Следующее, что нужно учитывать, это как иметь дело с разными клиентами, когда они работают в чате одновременно. Эта проблема на самом деле такая же, как и два пользователя в базе данных, написав одну и ту же запись одновременно. Другой пользователь исчез, прежде чем кто -либо, кто присутствовал на сессии, видел это. Чтобы избежать этой проблемы, нам необходимо использовать свойство блокировки объекта приложения, чтобы ограничить только текущего пользователя, чтобы редактировать или добавить свойства объекта приложения. Явно разблокированные до тех пор, как пользователь может быть отредактировано только свойства приложения объекта. Как показано ниже:
Application.lock
Приложение (Show) = Talk & Application (Show)
Application.unlock
Теперь, когда вы поняли основную часть всей программы, подумайте о том, как сохранить информацию о клиентах. нравиться:
Session (nick) = request.form (nick)
Наконец, нам нужно рассмотреть вопрос о том, как обрабатывать различные события только в одном файле. Поскольку в первый раз клиент запрашивает файл .asp, он использует простой метод http get, но когда клиент добавляет данные в поле формы на странице и подчиняет форму себе, файл .asp будет запрошен снова, но Это данные передаются через HTTP Post. То, как запрашивается файл, может быть определено двумя способами. Во -первых, проверьте, содержит ли сбор запроса. Форма участников. Второе - использовать переменную request.servervariables (request_method). Если форма запрашивается через HTTP GET, эта переменная возвращает GET и публикует, если форма отправлена. Поскольку последний метод является более прямым при определении метода запроса файла, мы используем следующий код для вынесения решения:
Если запрос.servervariables (request_method) = get then
Поскольку мы настроили кэш ASP, когда программа определяет, что метод запроса страницы получается, программа запускает ответ. Программа пробега. Таким образом, мы можем использовать один и тот же файл .asp для отображения различных интерфейсов для клиентов в соответствии с различными ситуациями.
Хорошо, я сказал вам основную часть этой программы ASP. Не говорите в чате, вы не увидите, что говорят другие клиенты. Все знают обаяние чата в Интернете. Постепенно улучшать уровень этой программы чата, чтобы каждый также мог передать скрытую версию Opera. Примечание: с помощью этой программы чата вы можете использовать его для создания приложения чата на своих PWS. Через ваш компьютер.