Лекция ASP 4: Встроенные компоненты ASP
Автор:Eve Cole
Время обновления:2009-05-30 19:58:14
В первых трех лекциях мы в основном знакомили с четырьмя встроенными объектами, предоставляемыми ASP:
Объект ответа: отправить информацию в браузер.
Объект запроса: информация о доступе, отправленная из браузера на сервер (например, получение данных формы).
Объект сеанса: хранит и считывает конкретную информацию о разговоре пользователя.
Объект приложения: хранит и считывает информацию о приложении, общую для всех пользователей.
Кроме того, существуют объекты Server и объекты ObjectContext, которые мы изучим в будущих примерах (подсказка: на самом деле вы уже можете использовать полученные знания для написания онлайн-чата, даже не осознавая этого). Содержанием этой лекции является использование серверных компонентов ActiveX ASP (компонентов).
1. Компонент возможностей браузера:
Мы знаем, что разные браузеры могут поддерживать разные функции. Например, некоторые браузеры поддерживают фреймы, а некоторые нет. Используя этот компонент, вы можете проверить возможности браузера, чтобы ваша веб-страница могла отображать разные страницы для разных браузеров (например, отображать веб-страницы без Frame для браузеров, которые не поддерживают Frame). Использовать этот компонент очень просто. Следует отметить, что для правильного использования этого компонента необходимо убедиться, что файл Browscap.ini обновлен (фактически в этом файле перечислены все браузеры и его функции. Вы это сделаете). поймите после открытия самостоятельно), в противном случае результаты могут сильно отличаться. Например, IE5.0, включенный во вторую версию Win98, в следующем примере отображается как Netscape. Этот файл обычно находится в папке «WinntSystem32InetSrv» на веб-сервере. Последнюю версию можно загрузить с http://www.asptracker.com/ или http://www.cyscape.com/browscap.
Пример: wuf22.asp
<html>
<ТЕЛО>
'Примечание: Использование компонентов аналогично использованию объектов, но компоненты должны быть созданы перед использованием, и нет необходимости создавать их перед использованием встроенных объектов.
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
Пожалуйста, подождите......
<П>
<ГРАНИЦА ТАБЛИЦЫ=1 CELLPADDING=10>
<TR><TD>Тип браузера</TD><TD><%=BrowsCap.Browser%></TD></TR>
<TR><TD>Версия браузера</TD><TD><%=BrowsCap.version%></TD></TR>
<TR><TD>Поддерживаются ли таблицы</TD><TD><%=BrowsCap.tables%></TD></TR>
<TR><TD>Поддерживаются ли элементы управления ActiveX</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
<TR><TD>Поддерживаются ли JavaApplets</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
<TR><TD>Поддерживается ли JavaScript</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>Поддерживаются ли файлы cookie</TD><TD><%=BrowsCap.Cookies%></TD></TR>
<TR><TD>Поддерживаются ли фреймы</TD><TD><%=BrowsCap.Frames%></TD></TR>
<TR><TD>Операционная система</TD><TD><%=BrowsCap.Platform%></TD></TR>
<TR><TD>Поддерживается ли VBScript</TD><TD><%=BrowsCap.vbscript%></TD></TR>
</ТАБЛИЦА>
<%Set BrowsCap = Ничего%>
</ТЕЛО>
</HTML>
Примечание. В этом примере мы также затронули метод CreateObject объекта Server. CreateObject используется для создания компонентов ActiveX, зарегистрированных на сервере (Примечание. Существуют и другие методы создания компонентов). Но не забывайте использовать «Set Object = Nothing», чтобы вовремя освободить ресурсы. Это должно войти в привычку.
2. Компонент доступа к файлам
Компонент File Access состоит из объекта FileSystemObject и объекта TextStream. Используя объект FileSystemObject, вы можете создавать, извлекать и удалять каталоги и файлы, а объект TextStream обеспечивает функцию чтения и записи файлов.
Пример wuf23.asp. Акцент: только посредством практики можно углубить понимание. Практика и сравнение результатов выполнения программ — лучший способ быстро овладеть навыками программирования.
<%@ Language=VBScript %>
<% Опция явная
' Обратите внимание на абсолютный путь: C:Inetpubhomeaspwuf23.asp Путь к домашней странице: C:Inetpubhome
Тусклый путь, файл, FSO, CTF, Str, StrHTML, StrNoHTML
'Используйте метод CreateObject для создания объекта FileSystemObject FSO
Установите FSO = Server.CreateObject("Scripting.FileSystemObject")
Path = Server.MapPath("test") 'Возвращает физический каталог теста (абсолютный путь)
'Что касается этого примера, следующее предложение возвращает точно тот же путь, что и приведенное выше предложение.
'Путь = Server.MapPath("asptest")
Response.Write Path & "<Br>"
Если FSO.FolderExists(Path) = false, тогда «Определите, существует ли папка».
FSO.CreateFolder(Path) 'Создаем новую папку
Конец, если
Файл = Путь и "asptest.txt"
'Операция записи файла
If FSO.FileExists(File) = True then 'Определить, существует ли файл
'Создаем объект TextStream CTF
Set CTF = FSO.OpenTextFile(File, 8, False, 0) 'Открываем файл, подробности смотрите в описании
Еще
Set CTF = FSO.CreateTextFile(File,False, False) 'Новый файл
Конец, если
CTF.Write "<P>Первая строка; " 'Записать строку
CTF.WriteLine "Вторая строка; " 'Запишите строку и добавьте символ новой строки
CTF.Write "Третья строка; "
CTF.Close 'Примечание о закрытии файла
'Операция чтения файла
Установите CTF = FSO.OpenTextFile(Файл, 1,,0)
Do While CTF.AtEndOfStream <> True 'Определить, заканчивается ли файл (оператор цикла)
Str = CTF.ReadLine 'Читать одну строку (каждый раз)
StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf
StrHTML = StrHTML & Server.HTMLEncode(Str) & "<BR>" & VbCrLf
Петля
Response.Write StrNoHTML
Response.Write StrHTML
CTF.Закрыть
Set CTF = Nothing 'Освободить объект
Установить FSO = Ничего
%>
CTF = FSO.OpenTextFile(File, 8, False, 0), первый параметр в скобках — имя файла; второй параметр — 8, что означает добавление содержимого после исходного файла. Если оно равно 1, это означает чтение. -only, и если он равен 2, то будет перезаписан исходный файл; третий параметр false означает, что если указанный файл не существует, файл не будет создан, если он равен True, это означает, что указанный файл не существует; существует, то файл будет создан; четвертый параметр 0 означает, что он будет открыт в формате файла ASCII. Если он равен -2, это означает открытие в исходном формате.
CTF = FSO.CreateTextFile(File,False, False), второй параметр false означает не перезаписывать существующий файл, если он равен True, это означает перезапись (OverWrite) существующего файла, третий параметр false означает, что формат файла — ASCII; Значение True указывает, что формат файла — Unicode.
Метод MapPath объекта Сервер преобразует указанный виртуальный путь в реальный путь к файлу. MapPath обрабатывает символы «/» и «» одинаково.
Метод HTMLEncode объекта Server позволяет HTML-кодировать определенную строку или разрешить браузеру правильно отображать определенные символы. В приведенном выше примере, если он не закодирован, «<P>» не будет отображаться, но будет рассматриваться браузером как тег HTML. Вы можете сравнить текущие результаты.
Фактически, компонент «Доступ к файлам» является относительно мощным в работе с файлами, папками и дисками, а также предоставляет больше методов. Если вам нужно использовать эти знания, не забудьте их использовать.
Кроме того, на данный момент создание счетчика веб-страниц — это проще простого. Неудивительно, что на многих веб-страницах счетчики предоставляются бесплатно. Как насчет этого? Попробуйте написать графический счетчик самостоятельно. Мошенничать можно сколько угодно. Последнее слово остается за вами. Это так здорово! (Маленький секрет: на моей домашней странице есть экземпляр wuf24.asp)
3. AD Rotator (рекламный переворачивающийся компонент)
Сегодня, когда я пользуюсь Интернетом, больше всего я ненавижу рекламные баннеры на домашних страницах других людей, а больше всего мне нравятся рекламные баннеры на моей собственной домашней странице. Рекламные баннеры повсюду, как спам, и от них трудно защититься. Вы также можете создать такой мусор самостоятельно. Компонент AD Rotator ASP может случайным образом отображать рекламу каждый раз, когда вы открываете или перезагружаете веб-страницу. Этот пример состоит из трех частей:
Подпрограмма wuf25.asp
<%@ Language=VBScript %>
<% Опция явная
Тусклый адрес
'Создаем объект AD Rotator
Установить adr = Server.CreateObject("MSWC.AdRotator")
adr.Border = 2 'Укажите размер границы графического файла
adr.Clickable = True 'Указывает, является ли отображаемое изображение гиперссылкой.
adr.TargetFrame = "_blank" 'Установите гиперссылку, следует ли указывать имя кадра, например: _TOP _NEW _PARENT
'Получаем настройки изображения и гиперссылки для отображения - задаются в файле AdrSet.txt
Response.Write adr.GetAdvertisement("AdrSet.txt")
%>
Содержимое AdrSet.txt (за которым следуют комментарии, а не содержимое этого файла):
ПЕРЕНАПРАВИТЬ wuf26.asp После нажатия на рекламное объявление оно будет обработано wuf26.asp.
WIDTH 468 Ширина изображения объявления
HEIGHT 60 Высота рекламного изображения
* разделитель
Местоположение рекламного изображения, которое также может быть локальным графическим файлом.
http://www.163.com/ указывает на ссылку. Если гиперссылки нет, напишите «-».
Текстовое описание NetEase
20 показывает относительный вес рекламы, то есть частоту показа.
http://www.sina.com.cn/
sina.com
30
http://www.canon.com.cn/
Канон
50
В этом примере есть три изображения (размер изображения 468X60) и ссылки. Описание каждой ссылки занимает четыре строки. В реальном использовании вы можете использовать тот же метод и добавить больше изображений.
<% 'wuf26.asp
URL = Request.QueryString("URL")
Response.Redirect(URL)
%>
wuf26.asp — самая простая программа обработки, вы можете добавить сюда больше кода в соответствии с реальными потребностями.
Запустите его, и окажется, что использовать этот компонент тоже очень просто. Все, что вам нужно сделать, это получить собственный файл AdrSet.txt. Используя этот компонент, вы даже можете создать домашнюю страницу обмена рекламой, которая сейчас очень модна.
4. Компонент «Связывание контента». Очевидно, что этот компонент связан со ссылками. Если вы хотите сразу узнать конкретное использование этого компонента, боюсь, это слишком поспешно. Вы могли бы также сначала процитировать классический пример: Предположим, вы читаете. книгу в Интернете, вы не должны быть знакомы со следующими ссылками. Будут незнакомы: Глава 1, Глава 2,..., предыдущая глава, следующая глава (или предыдущая страница, следующая страница) и т. д. Теперь нам нужно сделать так, чтобы легко и быстро настроить переходы между этими ссылками.
Сначала создайте текстовый файл списка ссылок, например urllist.txt.
wuf23.asp Глава 1. Операции с файлами (компонент доступа к файлам)
wuf28.asp Глава 2. Пример использования компонента Content Linking
wuf22.asp Глава 3: URL-адрес ссылки на компонент возможностей браузера и описание разделяются клавишей Tab. Следующий файл wuf27.asp используется для вывода списка всех ссылок в urllist.txt.
<% @LANGUAGE = VBScript %>
<% Опция явная %>
<html><head><title>Использование компонента Content Linking</title></head>
<тело>
<h2>Оглавление: обратите внимание, что основная ссылка — это глава 2, вы должны нажать на нее</h2>
<ул>
<%
Тусклый NextLink, граф
'Создание компонента связывания контента
Установите NextLink = Server.CreateObject("MSWC.NextLink")
'Получаем количество ссылок в файле urllist.txt
Count = NextLink.GetListCount("urllist.txt")
Тусклый URL, Dscr, I
Для I = 1 для подсчета
url = NextLink.GetNthURL(urllist.txt, I) 'Получить гиперссылку
Dscr = NextLink.GetNthDescription ("urllist.txt", I) 'Получить текстовое описание
Response.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
Следующий
%>
</ul></body></html>
Затем возьмите wuf28.asp в качестве примера, чтобы проиллюстрировать, как автоматически переходить к предыдущей и следующей главе.
<% @LANGUAGE = VBScript %>
<% Опция явная %>
<html><head><title>Обратите внимание на эту ссылку</title></head>
<тело>
<p>Вот текст главы 2......</p>
<% 'Каждый файл содержит следующее предложение для автоматического связывания%>
<!--#include file="wuf29.asp"-->
</body></html>
Добавление сюда последнего предложения может реализовать автоматический переход. Ядро находится в wuf29.asp.
<%
Тусклый NextLink, ранг
Установите NextLink = Server.CreateObject («MSWC.NextLink»)
«Какая текущая ссылка в urllist.txt?»
ранг = NextLink.GetListIndex ("urllist.txt")
Ответ. Напишите «<hr>»
Если (ранг > 1) Тогда 'ранг = 1, предыдущей страницы нет
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>Предыдущая глава</a>|"
Конец, если
If (rank < NextLink.GetListCount("urllist.txt")) then 'ранг в конце, значит следующей страницы нет
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>Следующая глава</a>|"
Конец, если
%>
После запуска этого примера вы сразу сможете по-настоящему понять роль этого компонента. Короче говоря, нет необходимости писать «предыдущая глава» и «следующая глава» на каждой странице. Это можно сделать полностью через wuf29.asp. . Не очень удобно? ! В противном случае не будет ли слишком хлопотно изменить ссылку вручную?
Теперь вы должны понимать, что в Интернете существует большое количество бесплатных счетчиков, бесплатных досок объявлений, бесплатных чатов, сетей обмена рекламой и т. д. Их принципы – не что иное, как это, поэтому поклоняться им не нужно.