Самая важная вещь для изучения ASP — это овладеть шестью встроенными объектами ASP. Если вы никогда раньше не сталкивались с этим, вы достаточно умны, чтобы игнорировать эти концепции и просто знать, как их использовать. что ключом к изучению ASP в начале является его копирование. Самое главное — освоить шесть встроенных объектов ASP. Фактически, в предыдущей лекции мы уже узнали об объекте Response и наиболее часто используемых методах Write, методе Redirect и свойстве Expires в объекте Response. Когда вы видите концепции объектов, методов, свойств, коллекций и событий (я не знаю ни одного из них!), если вы никогда раньше с ними не сталкивались, вы умны и не заботитесь об этих концепциях. Просто знайте, как их использовать. Я считаю, что это только начало. Главное — копировать. Давайте продолжим изучение объекта Request на примерах. Чтобы углубить наше понимание, запустите эти программы и посмотрите выходные результаты.
1. Используйте Request.ServerVariables для получения переменных среды. Эта часть очень проста, но полученное содержимое очень важно. Как его получить? Пожалуйста, посмотрите следующий пример:
Скопируйте код кода следующим образом:
<%@ Language=VBScript %>
<HTML><ТЕЛО>
<% 'wuf8.asp
Response.Write Путь для запуска файла ASP: &_
Request.ServerVariables(Script_Name) & <Br>
Response.Write возвращает длину данных содержимого: &_
Request.ServerVariables(Content_Length) & <Br>
Response.Write возвращает IP-адрес клиента: &_
Request.ServerVariables(Remote_Addr) & <Br>
Ответ. Напишите имя браузера: &_
Request.ServerVariables(HTTP_USER_AGENT) & <Br>
Response.Write возвращает фактический физический путь к домашней странице: &_
Request.ServerVariables(APPL_PHYSICAL_PATH) & <Br>
%>
<таблица colspan=8 cellpadding=5 border=0>
<тр>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>Имя переменной среды</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>Содержимое</font></td>
</tr>
<тр>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
результат1
</font></td>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
результат2
</font></td></tr>
</таблица>
</BODY></HTML>
Теперь вы должны убедиться, насколько простой оказалась процедура wuf2.asp из предыдущей лекции!
Примечание. HTML-разметка во второй части этой программы предназначена исключительно для подготовки к следующему примеру, поэтому не удивляйтесь. Итак, какие еще переменные среды существуют? Вы узнаете это, выполнив следующий пример (в этой программе удалены некоторые коды, для облегчения понимания лучше всего загрузить исходную программу с моего сайта).
Скопируйте код кода следующим образом:
<%@ Language=VBScript %>
<% 'wuf9.asp
Опция явная
Дим Св
%>
<HTML><ТЕЛО>
<таблица colspan=8 cellpadding=5 border=0>
<тр>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>Имя переменной среды</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>Результаты</font></td>
</tr>
<%
для каждого Sv в Request.ServerVariables
Response.Write<tr>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
Response.Write Sv
Ответ.Запись </font></td>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
Ответ. Запрос на запись. Серверные переменные (Sv)
Ответ.Запись </font></td></tr>
следующий
%>
</таблица>
</BODY></HTML>
Цикл For...Each используется здесь для вывода списка всех элементов коллекции. Если вы не понимаете вторую половину, сравните wuf8.asp, посмотрите на текущие результаты и внимательно разберитесь (как вы к этому относитесь?).
2. Передать данные на сервер через форму (под этим можно понимать и то, как сервер читает данные, отправленные клиентом)
Если вы работали над домашней страницей, вы должны знать, что на многих домашних страницах обычно используются формы форм, позволяющие пользователям вводить данные, а затем отправлять их через кнопку отправки. В форме From есть два основных метода: POST и GET. После действия обычно указывается файл .cgi, .pl или .asp. Сегодня мы собираемся научиться писать этот файл .asp.
(1) Если вы используете метод POST для передачи данных, используйте Request.Form для чтения данных.
Сначала отредактируйте следующий файл wuf10.htm, чтобы пользователи могли вводить данные:
Скопируйте код кода следующим образом:
<html>
<body bgcolor=#FFFFFF>
<метод формы=post action=wuf11.asp>
Имя: <тип ввода=текстовое имя=ваше имя><br>
Пол: <выберите имя=пол>
<option>Мужской</option>
<option>Женский</option>
</выбрать> <br>
Сообщение: <textarea name=message>Привет!
Обратите внимание на обработку многострочного текста</textarea> <br>
Хобби (удерживайте клавишу Ctrl, чтобы выбрать несколько):
<выберите имя=хобби, несколько размеров=4>
<option>Компьютер</option>
<option>Покупки</option>
<option>Фильмы</option>
<option>Чтение</option>
</выбрать> <br>
<тип ввода=имя отправки=Отправить значение=Отправить>
<тип ввода=имя сброса=Отправить2 значение=Сброс>
</форма>
</тело>
</html>
Затем напишите файл wuf11.asp, который wuf10.htm должен использовать для сбора данных:
Скопируйте код кода следующим образом:
<%@ Language=VBScript %>
<% 'wuf11.asp
Опция явная
Ответ.Истекает=0
Dim StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form(ваше имя)) 'Функция Trim используется для удаления начальных и конечных пробелов.
StrGender = Trim(Request.Form(пол))
StrM = Trim(Запрос.Форма(сообщение))
StrMsg = Заменить(StrM,vbcrlf,<Br> & vbcrlf)
' vbcrlf эквивалентен комбинации возврата каретки и перевода строки. Что касается функции replace, то ее функция заключается в замене vbcrlf в строке StrM на <Br> и vbcrlf (подумайте об использовании этого vbcrlf? Вы поймете, посмотрев исходный HTML-код выходного файла). для получения подробной информации обратитесь к справке VBScript.
%>
<HTML><ТЕЛО>
Имя: <%= StrName%><Br><Br>
Пол: <%= StrGender%><Br><Br>
Сообщение: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
Фактически, значение кнопки отправки также передается: <Br>
<%= Request.Form(Submit)%><Br><Br>
<% 'Сначала разберитесь в вышеизложенном, а затем посмотрите, как читать несколько вариантов, если вам интересно
Response.Write Общее количество выбранных хобби: & Request.Form(хобби).Count & <Br>
Дим я
Для I = 1 в Request.Form(хобби).Count
Ответ.Запрос на запись.Форма(хобби)(I) & <Br>
Следующий
%>
</BODY></HTML>
В этом примере для простоты понимания мы используем две программы. На самом деле вы также можете использовать только одну программу. Если вам интересно, ознакомьтесь со следующей процедурой wuf12.asp, которая поможет вам глубже понять переменные среды.
Скопируйте код кода следующим образом:
<%@ Language=VBScript %>
<% 'wuf12.asp
Опция явная
Ответ.Истекает=0
Dim StrName, StrGender, StrM, StrMsg
Если Request.ServerVariables(Content_Length) <> 0 Тогда
'После отправки данных длина не будет равна 0, поэтому выполните следующий оператор, чтобы отобразить результат
'Следующая часть фактически скопирована из wuf11.asp
StrName = Trim(Request.Form(ваше имя))
StrGender = Trim(Request.Form(пол))
StrM = Trim(Запрос.Форма(сообщение))
StrMsg = Заменить(StrM,vbcrlf,<Br> & vbcrlf)
%>
<HTML><ТЕЛО>
Имя: <%= StrName%><Br><Br>
Пол: <%= StrGender%><Br><Br>
Сообщение: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
Response.Write Общее количество выбранных хобби: & Request.Form(hobby).Count & <Br>
Дим я
Для I = 1 в Request.Form(хобби).Count
Ответ.Запрос на запись.Форма(хобби)(I) & <Br>
Следующий
%>
</BODY></HTML>
<%
Еще
'Когда страница загружается в первый раз, данные не передаются, поэтому предыдущая часть не выполняется, а начинается отсюда.
«Вот почему существуют две пары <HTML></HTML>
«Просто скопируйте wuf10.htm ниже.
'<form Method=post action=wuf11.asp> был заменен переменными среды, но это точно то же самое
Response.Write, чтобы увидеть результат: & Request.ServerVariables(Script_name) & <Br>
%>
<HTML><ТЕЛО>
<form метод=post action=<%= Request.ServerVariables(Script_name)%>>
Имя: <тип ввода=текстовое имя=ваше имя><br>
Пол: <выберите имя=пол>
<option>Мужской</option>
<option>Женский</option>
</выбрать> <br>
Сообщение: <textarea name=message>Привет!
Обратите внимание на обработку многострочного текста</textarea> <br>
Хобби (удерживайте клавишу Ctrl, чтобы выбрать несколько):
<выберите имя=хобби, несколько размеров=4>
<option>Компьютер</option>
<option>Покупки</option>
<option>Фильмы</option>
<option>Чтение</option>
</выбрать> <br>
<тип ввода=имя отправки=Отправить значение=Отправить>
<тип ввода=имя сброса=Отправить2 значение=Сброс>
</форма>
</BODY></HTML>
<%Конец Если%>
(2) Если вы используете метод GET для передачи данных, используйте Request.Querystring для чтения данных.
Сначала отредактируйте следующий файл wuf13.htm, чтобы пользователи могли вводить данные:
<html>
<body bgcolor=#FFFFFF>
<метод формы=получить действие=wuf14.asp>
Английское имя: <тип ввода=текстовое имя=Имя> <br>
Китайское имя: <input type=text name=Cname><br>
Пол: <выберите имя=пол>
<option>Мужской</option>
<option>Женский</option>
</выбрать> <br>
<тип ввода=имя отправки=Отправить значение=Отправить>
<тип ввода=имя сброса=Отправить2 значение=Сброс>
</форма>
</тело>
</html>
Затем напишите файл wuf14.asp, который wuf13.htm должен использовать для сбора данных:
<%@ Language=VBScript %>
<% 'wuf14.asp
Опция явная
Ответ.Истекает=0
Тусклый StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString(Ename)) 'Функция Trim используется для удаления начальных и конечных пробелов.
StrCname = Trim(Request.QueryString(Cname))
StrGender = Trim(Request.QueryString(пол))
%>
<HTML><ТЕЛО>
Английское имя: <%= StrEname%><Br><Br>
Китайское имя: <%= StrCname%><Br><Br>
Пол: <%= StrGender%><Br><Br>
Взгляните на отправленную строку: <Br>
<%= Request.ServerVariables(Query_String)%>
</BODY></HTML>
Чтобы лучше понять эту программу, вам лучше сначала попробовать эффект процедуры wuf13.htm в браузере и посмотреть на результаты вывода. Вы обнаружите, что длинная строка в адресной строке выглядит знакомо, как и тогда. поиск на Yahoo Видел почти то же самое. В настоящее время вы пытаетесь ввести http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女 непосредственно в адресной строке и получаете тот же результат. Вы можете видеть это так: результатом работы wuf13.htm является получение ссылки с такими параметрами. Request.QueryString считывает все данные из дополнительных параметров адреса http://.
Фактически, при нажатии кнопки отправки строка запроса (входные данные) будет добавлена к URL-адресу в виде параметров (каждый параметр разделен знаком &) для достижения цели передачи данных. При этом обратите внимание, что в отображаемой в браузере строке запроса нет китайского языка, а есть нераспознаваемые искаженные символы, содержащие знаки процента. Это связано с тем, что она закодирована. Наконец, как и прежде, эти две программы также можно объединить в одну программу (рутину wuf15.asp, ее нужно скачать с моего сайта).
Несколько примечаний :
1. Если для отправки данных вы используете метод POST, Request.ServerVariables(Content_Length)>0.
Если вы используете метод GET для отправки данных, Request.ServerVariables(Query_String) <>.
2. Поняв принцип, вы можете смешивать Request.Form и Request.QueryString в одном файле ASP.
3. Если в форме несколько кнопок, как определить, какую кнопку нажал пользователь? Если вы обратите внимание, вы обнаружите, что в подпрограмме wuf11.asp есть предложение, в котором также передается значение кнопки отправки, и аналогичное значение можно найти в строке запроса, сгенерированной в wuf13.htm. Обратите внимание: передается только значение нажатой кнопки, а также значения других кнопок. Это является основой для принятия решения (на веб-сайте InfoWeb China Planning News есть аналогичная статья).