1. Основные знания ASP
1 ASP - это аббревиатура активных страниц сервера, интерпретированного локали сценариев;
2 ASP требует, чтобы операционная система Windows работала, и PWS необходимо установить в соответствии с 9X;
3 Теги скрипта для ASP и JSP <%%>, а для PHP вы можете установить их на несколько типов;
4 Символ комментариев ASP -;
5. Используйте дополнения, чтобы расширить функции ASP.
от www.knowsky.com
пример:
Helloworld_1.asp
<%= Привет, World%>
Эффект:
Привет, мир
Helloworld_2.asp
<%
для i = 1-10
Ответ. Запишите привет, мир
следующий
%>
Эффект:
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Привет, мир
Примечание. ASP нечувствителен к случаям;
2. Использование встроенных объектов ASP:
Любые встроенные объекты ASP можно использовать без необходимости конкретно объявлять их в сценарии ASP.
1 Запрос:
Определение: этот объект может использоваться для доступа к запросам, отправленной из браузера на сервер.
набор:
Cookie: значение, содержащее печенье для браузера
Форма: содержит значения в полях формы HTML
QueryString: значение, содержащее строку запроса
ServerVariables: содержит значения в переменных заголовка и среды
пример:
request_url.asp
<%
'Получите пользовательский ввод и храните переменные
user_id = request.querystring (user_id)
user_name = request.querystring (user_name)
'Судите, является ли пользовательский ввод правильным
if user_id = then
response.write user_id - это null, проверьте его
response.end
конец, если
Если user_name = then
response.write user_name is null, пожалуйста, проверьте это
response.end
конец, если
'Переменные печати
response.write user_id & <br>
response.write user_name
%>
Эффект:
При доступе к http://10.1.43.238/course/request_url.asp?user_name=j:
User_id is null, пожалуйста, проверьте это
При доступе к http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id:
my_id
Дж
Мышление: как переменные передаются в URL -адресах и получены страницами ASP?
request_form.htm
<стиль типа = текст/css>
<!-
.Input {фоновый цвет: #fffff; : Грузия;
A: Link {Color: #1B629C;
A: Hover {Color: #FF6600;
A: Посещено {текстовое декорация: нет}
->
</style>
<Центр>
<имя формы = курс action = request_form.asp method = post>
User_id: <input type = text name = user_id maxlength = 20 class = input> <br> <br>
User_name: <input type = text name = user_name maxlength = 30 class = input>
</form>
<br> <br>
<a href = javascript: document.course.submit ();> отправить </a>
</center>
request_form.asp
<%
'Получите пользовательский ввод и храните переменные
user_id = request.form (user_id)
user_name = request.form (user_name)
'Судите, является ли пользовательский ввод правильным
if user_id = then
response.write user_id is null, проверьте его
response.end
конец, если
Если user_name = then
response.write user_name is null, пожалуйста, проверьте это
response.end
конец, если
'Переменные печати
response.write user_id & <br>
response.write user_name
%>
Примечание. В чем разница между действием, указывающим на форму, request_form.asp и request_url.asp в исходном коде?
2 Ответ:
Определение: используется для отправки обратной информации в браузер и используйте этот объект для отправки вывода из сценария в браузер.
набор:
Печенье: добавьте печенье в свой браузер
Метод:
Конец: завершить обработку сценария
Перенаправление: загрузите браузер на новую страницу
Написать: отправить строку в браузер
свойство:
Буфер: кэшировать ASP
CacheControl: кэш управляется прокси -сервером
ContentType: указывает тип контента ответа
Истекает: браузер использует относительное время для управления кэшем
Истекает
пример:
response_redirect.asp
<%
'Зайдите в Google и посмотрите
response.redirect http://www2.google.com
response.end
%>
response_cookies.asp
<%
'Установить и читать файлы cookie
response.cookies (time_now) = теперь ()
response.write request.cookies (time_now)
%>
Эффект:
При доступе к http://10.1.43.238/course/response_cookies.asp:
2002-9-1 16:20:40
response_buffer.asp
<%'response.buffer = true%>
<a href = a> a </a>
<%response.redirect request_form.htm%>
Эффект:
①. Когда буферизация IIS выключена, произошла ошибка при доступе к этой странице
а
ОШИБКА ОБРАЗОВАНИЯ ОБРАЗОВАНИЯ 'ASP 0156: 80004005'
Заголовок неправильно
/course/response_buffer.asp, строка 3
Заголовок HTTP был записан в браузер клиента. Любая модификация заголовков HTTP должна быть до написания контента страницы.
②. Когда буферизационная функция IIS выключена и комментарии на первой строке файла удаляются, перенаправление страницы успешно
③. Когда включается функция буферизации IIS, перенаправление страницы будет успешным независимо от того, удаляется ли комментарий на первой строке файла или нет,
3 Сервер
Определение: на сервере можно использовать различные функции объектов, такие как управление временем выполнения скрипта до появления времени. Также можно использовать для создания других объектов.
Метод:
CreateObject: создать экземпляр объекта
Htmlencode: конвертировать строки для использования специальных HTML -символов
Маппат: преобразовать виртуальные пути в физические пути
Urlencode: преобразовать строки в кодируемый URL
ScriptTimeout: количество секунд, которые сценарий разрешается запустить перед прекращением
пример:
server_htmlencode.asp
<%
'html кодировать
response.write server.htmlencode (atime_now)
%>
Эффект:
atime_now
При просмотре исходного файла он появляется как: atime_now
Думая: почему это не такой эффект, как atime_now? Что не так с исходным файлом?
server_mappath.asp
<%
Маппат
response.write server.mappath (server_mappath.asp)
%>
Эффект:
G:/asp_www/test/course/server_mapath.asp
Думая: как получить фактический путь к корневому каталогу сайта? Как получить фактический путь к каталогу?
server_urlencode.asp
<%
'URL кодировать
response.write server.urlencode (a/time_now)
%>
Эффект:
%5ctime%5fnow
4 Приложение
Определение: используется для хранения и прочтения информации о приложениях, обмениваемой пользователями.
Метод:
Замок: предотвратите доступ к наборам приложений другим пользователям
Разблокировать: позволяет другим пользователям получить доступ к набору приложений
событие:
Onend: запускается путем завершения сетевого сервера и изменения файла Global.ASA
ONSTART: вызвано первым приложением для веб -страницы в приложении
пример:
Application_counter.asp
<%
'Простой счетчик, изготовленный с использованием приложения
Application.lock
Приложение (клики) = приложение (клики) +1
Application.unlock
response.write Вы первые и приложение (клики) и посетитель этого сайта!
response.write <br> <br> Вы из & request.servervariables (remote_addr)
%>
Эффект:
Вы первый посетитель этого сайта!
Вы из 10.1.43.238
Думаю: каковы функции блокировки и разблокировки в этом примере?
5 сессия
Определение: храните и прочитайте конкретную информацию о разговоре с пользователем, такую как хранение информации о доступе к пользователям на веб -сайте, и информация теряется после перезапуска сервера.
Метод:
Отказ: После обработки текущей страницы завершите сеанс пользователя
свойство:
Тайм -аут: продолжительность сеанса пользователя (минуты)
событие:
ONEND: Время времени ожидания сеанса пользователь больше не применяется к странице, чтобы запустить событие
OnStart: запускается первым приложением пользователя для веб -страницы
пример:
session_counter.asp
<%
'Простой счетчик, сделанный с помощью сеанса
SESSION (CLICKS) = SESSION (клики) +1
response.write Вы первым посетителем этого сайта и сеанса (клики) &!
response.write <br> <br> Вы из & request.servervariables (remote_addr)
%>
Эффект:
Вы первый посетитель этого сайта!
Вы из 10.1.43.238
Мышление: Поскольку как сеанс, так и приложение могут считать, в чем разница между ними? Как начать считать снова, если вы хотите получить более 100?
3. Используйте ASP для управления базой данных:
1 Разница между соединением через ODBC или OLE?
Сейчас есть два способа подключения к базе данных. С одной стороны, соединение может быть сгенерировано с использованием ODBC, которое совместимо с любой базой данных с диском ODBC (то есть в основном все базы данных на рынке);
Какой поставщик мне следует использовать? Используйте исходный поставщик OLE DB, когда это возможно, поскольку он обеспечивает более эффективный доступ к данным. Microsoft постепенно заменяет стандарт ODBC OLE DB и должна использовать ODBC только без оригинального поставщика OLE DB.
⑴. Подключитесь к SQL Server с помощью ODBC:
①. Настройка ODBC
②. Код соединения:
conn_odbc.asp
<%
Установить conn = server.createObject (adodb.connection)
'Conn.open dsn = course_dsn; uid = course_user; pwd = course_password; база данных = курс
Conn.open course_dsn, course_user, course_password
%>
Примечание. При настройке MyDsn, если база данных по умолчанию указана в качестве курса, приведенный выше код будет одинаковым. Предпосылка заключается в том, что Course_user имеет эксплуатационные разрешения в этой базе данных).
⑵. Подключитесь к SQL Server с помощью OLE:
conn_ole.asp
<%
Установить conn = server.createObject (adodb.connection)
Conn.Open Provider = SQLOLEDB; Источник данных = 10.1.43.238,2433;
%>
2 Работа база данных: соединение и набор записей
Используйте подключение и задание для работы с базой данных или используйте подключение только для работы с базой данных.
пример:
⑴. Используйте подключение и набор записей для совместной работы с базой данных
use_db_1.asp
<%
Установить conn = server.createObject (adodb.connection) 'Создайте объект, подключенный к базе данных
conn.open course_dsn, course_user, course_password 'Используйте этот объект для подключения к базе данных
Set rs = server.createObject (adodb.recordset) 'создать объект записи
Rs.Open Select * From user_info, conn, 1,1 'Open Database с использованием объекта Set Record
Если rs.recordcount> 0, то есть запись
response.write user_iduser_name <br>
для I = 1 до Rs.recordCount 'Loop, чтобы прочитать все записи
response.write rs (id) && rs (user_name) и <br>
'Поля вывода записи в браузер
Rs.movenext 'Указатель перемещает одну линию вниз
Если rs.eof, то выйдите для выхода из петли, если достигнуто нижняя часть набора записей
следующий
конец, если
%>
Эффект:
User_iduser_name
1ahyi
3test
⑵. Используйте подключение только для работы с базой данных:
use_db_2.asp
<%
Установить conn = server.createObject (adodb.connection) 'Создайте объект, подключенный к базе данных
conn.open course_dsn, course_user, course_password 'Используйте этот объект для подключения к базе данных
conn.execute удалить из user_info
%>
Эффект:
Все данные в таблице user_info удалены
Мышление: Есть ли какие -либо различия между двумя методами? В каких случаях они используются?
3 Как использовать транзакции, сохраненные процедуры и представления?
⑴. Использование хранимых процедур
①. Определить хранимые процедуры
Создать процедуру [output_1]
@sid int output
КАК
Установить @sid = 2
Создать процедуру [return_1]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Если существует (выберите идентификатор из user_info, где user_name =@user_name и password =@passwer)
возврат 1
еще
возврат 0
Создать процедуру [user_info_1]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Выберите идентификатор из user_info, где user_name =@user_name и password =@passwer
Создать процедуру [user_info_2]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Установите xact_abort on
Начать транзакцию
Удалить из user_info, где user_name =@user_name и password =@пароль
Совершать транзакцию
Установите xact_abort Off
Создать процедуру [user_info_3] как
Выберите * из user_info
②. Вызван в ASP
use_proc.asp
<!-#include virtual =/adovbs.inc->
<%
Установить conn = server.createObject (adodb.connection)
conn.open course_dsn, course_user, course_password
'Звоните в сохраненные процедуры с двумя входными параметрами и настройкой возвратной записи с помощью записей.
'Создать процедуру [user_info_1]
'(@user_name varchar (40),@пароль varchar (20))
'КАК
'Выберите идентификатор из user_info, где user_name =@user_name и password =@passwer
response.write нормальный вызов метод: <br>
Установить rs = server.createObject (adodb.recordset)
sql = user_info_1 '& request.querystring (user_name) &', '& request.querystring (пароль) &'
Rs.open SQL, Conn, 1,1
response.write rs (id) и <br>
Rs.close
'Используйте задание для вызова хранимых процедур без входных параметров, возврата записей, вы можете использовать recordcount и другие атрибуты
'Создать процедуру [user_info_3] как
'Выберите * из user_info
response.write <br> возвращает набор записей, вы можете использовать recordcount и другие свойства:
SQL = exec user_info_3
Rs.open SQL, Conn, 1,1
для i = 1 до rs.recordCount
response.write <br> & rs (user_name)
Rs.movenext
следующий
Rs.close
Установить RS = ничего
'Используйте команду для вызова хранимых процедур с выходными параметрами
'Создать процедуру [output_1]
'@sid int output
'КАК
'SET @SID = 2
response.write <br> <br> Вызов хранимых процедур с выходными параметрами: <br>
Установить cmd = server.createObject (adodb.command)
cmd.ActiveConnection = conn
cmd.commandtext = output_1
cmd.parameters.append cmd.createparameter (@sid, adinteger, adparamoutput)
CMD (@SID) = 10
cmd.execute ()
bbb = cmd (@sid)
response.write bbb & <br>
Установите cmd = ничего
'Используйте команду для вызова хранимых процедур с двумя входными параметрами и возвращающим значением
'Создать процедуру [return_1]
'(@user_name varchar (40))
'КАК
'Если существует (выберите идентификатор из user_info, где user_name =@user_name)
'возврат 1
'еще
'возврат 0
response.write <br> Вызов хранимой процедуры с двумя входными параметрами и возвратным значением: <br>
Установить cmd = server.createObject (adodb.command)
cmd.ActiveConnection = conn
cmd.commandtype = adcmdStoredProc
cmd.commandtext = return_1
cmd.parameters.append cmd.createparameter (@return_value, adinteger, adparamreturnvalue)
cmd.parameters.append cmd.createparameter (@user_name, advarchar, adparaminput, 40)
cmd.parameters.append cmd.createparameter (@password, advarchar, adparaminput, 20)
cmd (@user_name) = tuth
cmd (@password) = yyuyu
cmd.execute ()
rrr = cmd (@return_value)
Ответ.write rrr
Установите cmd = ничего
Conn.close
установить conn = ничего
%>
Эффект:
При посещении http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password=tt, появляется следующее
Обычный метод вызова:
12
Вернитесь в набор записей, вы можете использовать recordcount и другие свойства:
Ахи
тет
Тут
Вызовите хранимые процедуры с выходными параметрами:
2
Вызовите хранимую процедуру с двумя входными параметрами и возвращаемым значением:
1
ПРИМЕЧАНИЕ. Если в хранимой процедуре нет параметров, называется оператор SQL непосредственно именем сохраненной процедуры, а один параметр - параметр имени хранимой процедуры. ., параметр n; Полем
⑵. Используйте обработку транзакций
①. ASP встроенная транзакционная поддержка
пример:
use_transaction_1.asp
<%
'Использование транзакций в ASP
Установить conn = server.createObject (adodb.connection)
conn.open course_dsn, course_user, course_password
Conn.BeginTrans'Start Transaction
SQL = DELETE FROM USER_INFO
Установить rs = server.createObject (adodb.recordset)
Rs.open SQL, Conn, 3,3
Если conn.errors.count> 0, то есть ошибка
Conn.rollbacktrans 'hollback
Установить RS = ничего
Conn.close
установить conn = ничего
response.write транзакция не удалась и перевернулась в состояние перед модификацией!
response.end
еще
Conn.committrans 'Transaction
Установить RS = ничего
Conn.close
установить conn = ничего
Ответ. Написание транзакции была успешной!
response.end
конец, если
%>
②. Транзакции уровня базы данных
я. Создать хранимые процедуры
Создать процедуру [user_info_2]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Установите xact_abort on
Начать транзакцию
Удалить из user_info, где user_name =@user_name и password =@пароль
Совершать транзакцию
Установите xact_abort Off
II Вызван в ASP
use_transaction_2.asp
<%
Установить conn = server.createObject (adodb.connection)
conn.open course_dsn, course_user, course_password
sql = user_info_2 '& request.querystring (user_name) &', '& request.querystring (пароль) &'
Установить rs = server.createObject (adodb.recordset)
Rs.open SQL, Conn, 1,1
Установить RS = ничего
Conn.close
установить conn = ничего
%>
Обсуждение: преимущества и недостатки двух методов?
⑶. Используя представление
После определения представления в базе данных используйте представление в ASP, как при использовании таблицы
4 Пример подрыва базы данных
db_page.asp
<%
при ошибке резюме следующим
Установить conn = server.createObject (adodb.connection) 'Создайте объект, подключенный к базе данных
conn.open course_dsn, course_user, course_password 'Используйте этот объект для подключения к базе данных
Установить rs = server.createObject (adodb.recordset)
SQL = SELECT * FROM USER_INFO ORDER с помощью ID DECS
Rs.open SQL, Conn, 1,1
Если rs.recordcount> 0, то есть запись
rs.pearsize = 2'a Максимум 2 записи отображается на страницу
'Получите страницу, которая будет отображаться из URL -адреса
page = cint (запрос (страница))
'Обработка исключений страниц
Если Page = Then Page = 1
Если страница <1, то Page = 1
if page> = rs.pagecount, то Page = Rs.pagecount
rs.absolutepage = page' Текущая страница - это страница, указанная параметром страницы
Для i = 1 до Rs.PAgeSize'cycle Записи на текущей странице в соответствии с размером параметра PageSize
response.write user_id: & rs (id) и <br>
response.write user_name: & rs (user_name) и <br> <br>
rs.movenext 'Указатель записи движется вниз
Если rs.eof, то выйдите для выхода из петли, если достигнуто нижняя часть набора записей
следующий
конец, если
'Показать кнопку поворота страницы
Если страница> 1 тогда
response.write <a href = & request.servervariables (document_name) &? Page = 1> Page 1 </a>
response.write <a href = & request.servervariables (document_name) &? Page = & (Page-1) &> Предыдущая страница </a>
конец, если
Если Page <> Rs.pagecount, то
response.write <a href = & request.servervariables (document_name) &? Page = & (Page+1) &> Следующая страница </a>
response.write <a href = & request.servervariables (document_name) &? Page = & Rs.pagecount &> Последняя страница </a>
конец, если
response.write Номер страницы: & page &/& rs.pagecount
'Закройте объект и отпустите память
Rs.close
Установить RS = ничего
Conn.close
установить conn = ничего
%>
Мышление: Какие дополнительные атрибуты используются в процессе пейджинга?