4. Разработка и использование компонентов ASP:
1 Какие компоненты?
Преимущества:
n легко позвонить и сохранить код
Высокая безопасность
Обработка транзакций NSUPPORT, многокомпонентный союз
n -affect round opport
NUSE не нужно изменять страницу для обновления и изменения компонентов, поэтому она имеет хорошую масштабируемость
L недостатки:
Трудности развития и отладки
2 Как разработать с помощью VB?
⑴. Откройте VB >> NewProject >> ActiveX DLL
⑵. Изменить название проекта на курс
⑶. Измените имя модуля класса, чтобы быть conn_db
⑷. Project >> Ссылки, ссылки на библиотеку библиотеки Com+ Type и Microsoft Active Server страниц объектов.
⑸. Измените код класса следующим образом:
от www.knowsky.com
'Создать подключение к базе данных и вывести поле базы данных
DIM -ответ как ответ
DIM -запрос в качестве запроса
Dim Server как сервер
Приложение Dimapplicationas
Dimsessionas Session
Private sub class_initialize ()
Dim objContext As ObjectContext
Установить objContext = getObjectContext ()
Установить ответ = objContext (ответ)
Установить запрос = objContext (запрос)
Установить Server = objContext (сервер)
Установить Application = objContext (приложение)
SET SESSION = OBJCONTEXT (SESSION)
Конец суб
Sub conn_db ()
Установить conn = createObject (adodb.connection)
conn.open course_dsn, course_user, course_password
Установите rs = createObject (adodb.recordset)
Rs.open Select * From user_info, conn, 1, 1
Если rs.recordcount> 0, то тогда
Для i = 1 до rs.recordCount
Response.write <br> & rs (user_name) и <br>
Если ref, то выйдите для
Rs.movenext
Следующий
Конец, если
Rs.close
Установить RS = ничего
Conn.close
Установить conn = ничего
Конец суб
⑹. Добавить новый класс Cutstr
⑺. Измените код класса следующим образом:
'Перехватывает строку
Функция cutstr (str, длина)
Если Len (str)> длина, тогда
cutstr = слева (str, длина) и ...
Еще
cutstr = str
Конец, если
Конечная функция
⑻. Файл >> Сохранить
⑼. Файл >> Сделать course.dll
3 Зарегистрированные компоненты: MTS и REGSVR32.exe
Есть два способа регистрации компонентов: MTS и использование Regsvr32.exe. MTS рекомендуется, потому что он имеет следующие преимущества:
N Динамический баланс удаления для улучшения обновления компонентов и компонентов.
N содержит возможность публиковать и отправлять компоненты событий и очередей, что облегчает сочетание с несколькими компонентами.
Чтобы компонент имел характеристики MTS, для компонента необходимо внести небольшое изменение. При разработке в соответствии с NT и 98 библиотека типов транзакций Microsoft должна быть указана в проекте, а при разработке в рамках Windows 2000 должна быть направлена библиотека типа услуг COM+.
⑴. Регистрация REGSVR32:
Regsvr32.exe - это исполняемый файл в рамках System32.
Используйте командную строку, чтобы ввести каталог, в который находится файл компонента DLL, и выполните regsvr32 dll_file_name.
Запустите REGEDIT, и CUSE.CONN_DB и CUSE.CUTSTR будут найдены в HKEY_CLASSES_ROOT, указывая на то, что регистрация компонента успешна.
⑵. Зарегистрируйтесь в MTS:
①. Start >> Программы >> Административные инструменты >> Услуги компонентов
②. Расширить каталог до следующего состояния:
③. Следите за мастером, следующим шагом до следующего диалогового окна, нажмите «Создать пустое приложение»:
④. В следующем диалоговом окне назовите курс приложения, а другие значения по умолчанию, пока он не будет завершен
⑤. Разверните приложение курса, щелкните правой кнопкой мыши и создайте новый компонент
⑥. Следуйте подсказкам и продолжайте.
⑦. Выберите разработанные нами компоненты, следующий шаг, пока они не закончат
⑧. В настоящее время вы можете обнаружить, что в приложении курса есть два дополнительных компонента:
4 Вызов компонентов в ASP
asp_use_com.asp
<%
'ASP вызывает компонент Com
Установить cutstr_obj = server.createObject (course.cutstr)
response.write cutstr_obj.cutstr (abcdefghijk, 3) и <br>
Установить cutstr_obj = ничего
Установить conn_obj = server.createObject (cource.conn_db)
conn_obj.conn_db ()
Установить conn_obj = ничего
%>
Эффект:
ABC ...
Ахи
Тут
Это означает, что вызов успешным.
5 Удалить компоненты
⑴.
ПРИМЕЧАНИЕ. Сначала введите каталог, где находится компонент DLL, а затем используйте REGSVR32 -U DLL_FILE_NAME для удаления;
⑵. Используя зарегистрированные компоненты MTS, сначала удалите соответствующее приложение в службе компонентов, а затем выполните шаг 1, чтобы полностью удалить компоненты.
6 Местоположение хранения компонентов DLL и настройки разрешения
⑴. Нам просто нужно скопировать скомпилированный файл DLL, и другие файлы не нужно обрабатывать.
⑵. Поместите DLL за пределами веб -сайта, например, в каталоге System32, чтобы предотвратить загрузку
⑶. Права файлов DLL устанавливаются на чтение системы, а пользователи интернета проводят папки/запуск файлов
⑷. DLL удаляет все разрешения в IIS, такие как чтение, добровольный доступ к сценариям и т. Д.
После приведенной выше обработки можно обеспечить безопасность файла DLL.
7 другой
Как использовать объект ASP в компоненте для удобного кода ASP для компонента COM?
5. Оптимальная конфигурация IIS
1 Вкладка веб -сайта: IP, порт, виртуальный хост, подключение, журнал
2 Фильтр ISAPI: добавить поддержку PHP и JSP
3 Вкладка конфигурации Home Directory: I - это настройки разрешения (в сочетании с правами файлов), разрешение на выполнение, защита приложений, отображение, буферизация, родительский путь, информация об ошибке
4 Другие вкладки: пользовательские ошибки, заголовки http, безопасность каталогов, документация
5 Преимущества и недостатки сжатия файлов
VI
1 Отправить электронное письмо (JMail; MS SMTP)
Отправить электронные письма с помощью Microsoft SMTP
⑴. Установите SMTP Service Microsoft
⑵. Настройка сервиса Microsoft SMTP
⑶. Раздел кода:
mail_smtp.asp
<%
Sub Sendmail (от Who, Towho, Subject, Body)
Dim Mymail
Установить mymail = server.createObject (cdonts.newmail)
mymail.from = fromwho
mymail.to = towho
mymail.subject = субъект
mymail.body = тело
mymail.send
Установить MyMail = ничего
Конец суб
%>
Эта подпрограмма принимает 4 параметра, соответствующие следующим элементам.
адрес электронной почты отправителя
адрес электронной почты получателя электронной почты
лемил тема
Содержание LEMAIL
Как использовать:
<%
от того, кто =…
towho =…
Субъект =…
Тело =…
Если Towho <> Then Then
Sendmail от who, towho, субъект, тело
Конец, если
%>
Отправить электронное письмо с помощью jmail
Если вам интересно, вы можете обсудить это со мной.
2 ZIP -файлы Unzip (командная строка wscript.shell и winzip; компоненты Java)
⑴. Установите Winzip 8.1 или выше
⑵. Установить командную строку Winzip
⑶. Установите права на файлы рабочего каталога, которые будут прочитать, записанные и измененные пользователями Интернета
⑷. Раздел кода:
unzip_a_zipfile.asp
<%
'Начните программу с объекта Shell
'ZIP_PATH - это путь к конкретному ZIP -файлу, например, c: /test.zip
'Путь - это путь для хранения повседневного файла
'Ond - это параметр командной строки
Установить wshshell = server.createObject (wscript.shell)
Выпуск = wshshell.run (wzunzip -ond & zip_path & & path, 1, true)
'Удалить файл ZIP
Установить myFileObject = server.createObject (scripting.filesystemobject)
myfileobject.deletefile Zip_path
'Судите, успешно ли продолжать операцию
Если проблема = 0, тогда
'успех
...
еще
'неудача
...
конец, если
%>
3 Управлять XML -файлом
Время обмена ограничено, поэтому давайте подробно обсудим его, если у вас есть время
4 Загрузка файла
⑴. Установите Component Component Component ASP FileUp (поддерживает несколько загрузки файлов, тип файла и размер, изменение имени файла после загрузки и т. Д.)
⑵. Перезапустите IIS, чтобы сделать компонент загрузки эффективным
⑶. Установите права на файлы каталога загрузки, чтобы пользователи интернета могли читать, записывать и изменять
⑷. Раздел кода
upload_file.htm
<стиль типа = текст/css>
<!-
.Input {фоновый цвет: #fffff; : Грузия;
A: Link {Color: #1B629C;
A: Hover {Color: #FF6600;
A: Посещено {текстовое декорация: нет}
->
</style>
<Центр>
<form enctype = multipart/form-data method = post action = opload_file.asp name = opload>
<input type = hidden name = copyrightinfo value = http: //www.chinaasp.com>
Пожалуйста, выберите файл: <input type = file name = file1 class = input> <br> <br>
Пожалуйста, выберите файл: <input type = file name = file2 class = input> <br> <br>
</form>
<br> <br>
<a href = javascript: document.upload.submit ();> отправить </a>
</center>
upload_file.asp
<%
при ошибке резюме следующим
'Определите функцию, которая получает суффикс файла
function getFileExtName (имя файла)
pos = instrrev (имя файла,.)
Если POS> 0 тогда
getFileextName = mid (имя файла, pos+1)
еще
GetFileExtName =
конец, если
конечная функция
'Определите функцию, чтобы получить правильное имя файла
функция getFileName (имя файла)
Lens = len (имя файла) -len (getFileextName (имя файла))-1
getFilename = слева (имя файла, объектив)
конечная функция
'Создать объект для компонента загрузки файлов
SET FileUp = server.createObject (ChinaSp.Upload)
'Прочтите файл, загруженный пользовательским циклом, и сохраните его на сервере
для каждого f в файле lefileup.files
'Когда пользователь не выбирает файл или размер файла превышает 10 м, вернитесь на страницу, где выбирается файл для его загрузки
Если f.filename = или f.filesize> 10485500, то response.redirect upload_file.htm
'Получите сохраненный путь
path = server.mappath (upload_file.asp)
Путь = слева (путь, Лен (Путь) -15)
'Сохраните файл
F.Saveas Path & GetFilename (f.filename) &. & GetFileextName (f.filename)
следующий
response.redirect upload_file.htm
%>
5 Drive/Directory/File Operations
Время обмена ограничено, поэтому давайте подробно обсудим его, если у вас есть время
6 Опыт написания и отладки ASP: как выбрать файлы cookie и сеансы, количество ловушек cookie, истечение страниц и настройки буферизации, как обеспечить переносимость, как справиться с 500 ошибками во внутреннем сервере ...
1 Куки и выбор сеансов:
⑴. Общие черты
⑵. Разница:
①. Как работать
②. Условия истечения
③. Влияние на производительность сервера
2 Куки -номера ловушка:
IIS может сохранить не более 20 общих файлов cookie, а затем определить новые файлы cookie.
Ответ - использовать 2D Cookie.
пример:
Проверьте предел числа 1D Cookie:
test_cookies_1.asp
<%
для i = 1-50
response.cookies (cookies_ & i) = i
следующий
%>
test_cookies_2.asp
<%
для i = 1-50
response.write request.cookies (cookies_ & i) и <br>
следующий
%>
Эффект:
Сначала посетите test_cookies_1.asp, затем test_cookies_2.asp, что вы нашли?
test_cookies_3.asp
<%
для i = 1-50
response.cookies (cookies_ & i) = i
следующий
для i = 1-50
response.write request.cookies (cookies_ & i) и <br>
следующий
%>
Эффект:
Никаких печенья не потеряно! ! ! !
Проверьте предел числа 2D Cookie:
test_cookies_4.asp
<%
для i = 1 до 301
response.cookies (tuht) (cookies_ & i) = i
следующий
%>
test_cookies_5.asp
<%
для i = 1 до 301
response.write request.cookies (tuht) (cookies_ & i) и <br>
следующий
%>
Эффект:
Используйте этот метод, чтобы использовать 201*20 = 4020 cookie! ! ! !
3 Срок годности страницы и настройки буферизации
<%
«Исток и буферизация
response.buffer = true
response.cachecontrol = no-chache
response.expiresabsolute = теперь ()-1
response.expires = 0
%>
Вы также можете сделать настройки в HTML:
<Meta Content = без Cache http-equiv = pragma>
<meta http-equiv = истекает content = 0>
4 Обеспечить пересадку
⑴. Включите файлы
<!-#Включите file = top.asp->
⑵. Используйте Server.mappath, чтобы найти пути файла, избегайте использования абсолютных путей непосредственно на странице
⑶. Попробуйте использовать компоненты для инкапсуляции бизнес -логики
5 Ошибка отладки внутреннего сервера 500
⑴. Установите IIS для отображения конкретных сообщений об ошибках
⑵. Пошаговая отладка, сверху донизу
⑶. Распечатайте значения некоторых важных переменных и проверьте, ожидаются ли они
⑷. Судить ошибки на основе опыта
7 Управлять документами Word
⑴. Установка Office 2000, который требуется для Word 2000
⑵. Установите интернет-безопасность в IE: все элементы управления ActiveX и плагины включены
⑶. Установите права на файлы рабочего каталога для чтения/изменения/записи Интернета и системы
⑷. Напишите шаблон курс
⑸. Конкретный код:
OPR_DOC_INC.ASP
<%
Response.write dim var_num & chr (13)
Response.write var_num = 2 & chr (13)
Response.write dim varstrings (2) и chr (13)
Response.write varstrings (0) = & chr (34) и drafter: & chr (34) и chr (13)
Response.write varstrings (1) = & chr (34) и дата: & chr (34) и chr (13)
Response.write dim varvalues (2) и chr (13)
Response.write varvalues (0) = & chr (34) и Drafter: Tu Haitao & Chr (34) и Chr (13)
Response.write varvalues (1) = & chr (34) и date: & date () и chr (34) и chr (13)
%>
Вместо этого sub (слово)
Установить myrange = word.activedocument.content
для i = 0 до var_num - 1
Позвоните myrange.find.execute (varstrings (i), false, false, false, false, false, false, false, false, false, false, varvalues (i), 2)
Следующий
Конец суб
OPR_DOC.ASP
<%
'Получите сохраненный путь
path = server.mappath (opr_doc.asp)
Путь = слева (путь, Лен (Путь) -11)
filenames = path & test.doc
w1 = word.activedocument.saveas & chr (32) и chr (34) & filenames & chr (34)
W2 = Wapp.documents.Open & CHR (32) и CHR (34) & FILENAMES & CHR (34)
%>
<script language = vbscript>
При ошибке резюме следующим
'Создать документ Word с указанным именем файла
Тусклое слово
SET WORD = createObject (word.application)
Если err.number> 0, тогда
Произошла ошибка в оповещениях, пожалуйста, подтвердите, существует ли файл
еще
word.visible = false
word.documents.open <%response.write path%> course.dot
<%Response.write w1%>
word.documents.close
установить слово = ничего
конец, если
<!-#Включите файл = OPR_DOC_INC.ASP->
Dim Wapp
Установить wapp = createObject (word.application)
Если err.number> 0, тогда
Ошибка произошла в предупреждении.
еще
wapp.visible = true
<%Response.write w2%>
Вместо этого звоните (WAPP)
Установить WAPP = ничего
конец, если
</script>
Эффект: Проверьте, был ли сгенерирован файл DOC? В чем разница между этим недавно созданным файлом DOC и шаблоном? Изменился ли разработчик и дата? Сохраните его и посмотрите содержимое недавно сгенерированного файла DOC.
Прикрепил:
1 Все вышеперечисленные коды были протестированы и переданы в рамках Windows 2000 SP2+IIS 5.0+MS SQL Server 2000+Office 2000
2 Настройка базы данных: Имя базы данных, курс пользователя, COURE_USER, пароль course_password, драйвер ODBC IS COURD_DSN, порт - 2433, сценарии, описывающие структуру таблицы, находятся в общем каталоге.
3 Пожалуйста, загрузите программное обеспечение ASP FileUp, Jmail, Winzip 8.1 и Winzip Command Line.
4. Файл скрипта базы данных:
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo].
Процедура сброса [DBO]. [output_1]
ИДТИ
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo].
Процедура сброса [DBO]. [return_1]
ИДТИ
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo]. [user_info_1]') и объектпроперти
Процедура сброса [dbo]. [user_info_1]
ИДТИ
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo]. [user_info_2]') и объектпроперти
Процедура сброса [dbo]. [user_info_2]
ИДТИ
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo].
Процедура сброса [dbo]. [user_info_3]
ИДТИ
Если существует (выберите * из dbo.sysobjects, где id = object_id (n '[dbo].
Drop Table [dbo]. [user_info]
ИДТИ
Создать таблицу [dbo]. [User_info] (
[id] [int] идентичность (1, 1) не нулевой,
[user_name] [varchar] (40) Собирайте cilina_prc_ci_as not null,
[пароль] [varchar] (20) COLTE CINKING_PRC_CI_AS не null
) На [первичный]
ИДТИ
ALTER TABLE [DBO]. [User_info] с noCheck добавить
Ограничение [PK_USER_INFO] Первичная клавиша
(
[имя пользователя]
) На [первичный]
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ANSI_NULLS OFF
ИДТИ
Создать процедуру [output_1]
@sid int output
КАК
Установить @sid = 2
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ansi_nulls на
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ANSI_NULLS OFF
ИДТИ
Создать процедуру [return_1]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Если существует (выберите идентификатор из user_info, где user_name =@user_name и password =@passwer)
возврат 1
еще
возврат 0
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ansi_nulls на
ИДТИ
Установите QUOTED_IDENTIFIER
ИДТИ
Установите ANSI_NULLS OFF
ИДТИ
Создать процедуру [user_info_1]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Выберите идентификатор из user_info, где user_name =@user_name и password =@passwer
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ansi_nulls на
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ANSI_NULLS OFF
ИДТИ
Создать процедуру [user_info_2]
(@USER_NAME VARCHAR (40),@пароль varchar (20))
КАК
Установите xact_abort on
Начать транзакцию
Удалить из user_info, где user_name =@user_name и password =@пароль
Совершать транзакцию
Установите xact_abort Off
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ansi_nulls на
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ANSI_NULLS OFF
ИДТИ
Создать процедуру [user_info_3] как
Выберите * из user_info
ИДТИ
Установите QUOTED_IDENTIFIER OFF
ИДТИ
Установите ansi_nulls на
ИДТИ