4. ASP 구성 요소의 개발 및 사용 :
1. 구성 요소는 무엇입니까?
장점 :
n은 호출하기 쉽고 코드를 저장합니다
높은 안전
NSUpport Transaction Processing, Multi Component Union
정식 달리기 속도
구성 요소를 업그레이드하고 수정하기 위해 페이지를 수정할 필요가 없으므로 확장 성이 좋습니다.
l 단점 :
개발 및 디버깅 어려움
2. VB를 사용하여 개발하는 방법?
⑴. vb >> newProject >> activex dll을 열어줍니다
⑵. 프로젝트 이름을 코스로 수정하십시오
⑶. 클래스 모듈의 이름을 conn_db로 수정하십시오.
⑷. 프로젝트 >> 참조, COM+ 서비스 유형 라이브러리 및 Microsoft Active Server Pages 객체 라이브러리 참조.
⑸. 다음과 같이 클래스 코드를 수정하십시오.
www.knowsky.com에서
'데이터베이스 연결을 만들고 데이터베이스 필드를 출력하십시오
응답으로서의 희미한 응답
요청으로 요청합니다
서버로서 Dim Server
교수형 응용 프로그램
Dimsessionas 세션
private sub class_initialize ()
ObjectContext로 Dim ObjContext를 DIM OBJContex
set objcontext = getObjectContext ()
응답 설정 = objContext (응답)
요청 설정 = objContext (요청)
set server = objcontext (Server)
응용 프로그램 설정 = OBJContext (응용 프로그램)
세션 설정 = objcontext (세션)
종료 서브
sub conn_db ()
set conn = createobject (adodb.connection)
Conn.Open Course_dsn, Course_user, Course_password
set 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>
rs.eof라면 종료하십시오
rs.movenext
다음
끝 If
Rs.Close
RS = 아무것도 설정하지 않습니다
conn.close
Conn = 아무것도 설정하지 않습니다
종료 서브
⑹. 새로운 클래스 컷스트스트를 추가하십시오
⑺. 다음과 같이 클래스 코드를 수정하십시오.
'문자열을 가로 채기
함수 컷스트 스트 (str, length)
LEN (str)> 길이 인 경우
cutstr = 왼쪽 (str, length) & ...
또 다른
cutstr = str
끝 If
엔드 기능
⑻. 파일 >> 저장
⑼. 파일 >> 코스를 만듭니다 .dll
3. 등록 구성 요소 : MTS 및 RegSVR32.exe
구성 요소를 등록하는 두 가지 방법은 MTS와 RegSVR32.exe 사용입니다. MTS는 다음과 같은 장점이 있으므로 권장됩니다.
n 동적 균형 균형을 제거하여 구성 요소 및 구성 요소 기반 애플리케이션의 업그레이드 가능성을 향상시킵니다.
n에는 이벤트 및 큐 구성 요소를 게시 및 제출하는 기능이 포함되어있어 여러 구성 요소와 쉽게 결합 할 수 있습니다.
구성 요소에 MTS 특성을 갖도록하려면 구성 요소를 약간 변경해야합니다. NT 및 98에 따라 개발할 때 Microsoft Transaction Server 유형 라이브러리를 프로젝트에서 참조해야하며 Windows 2000에서 개발할 때는 COM+ 서비스 유형 라이브러리를 참조해야합니다.
⑴. Regsvr32 등록 :
regsvr32.exe는 System32에 따른 실행 파일입니다.
명령 줄을 사용하여 구성 요소 DLL 파일이있는 디렉토리를 입력하고 regsvr32 dll_file_name을 실행하십시오.
run regedit 및 course.conn_db 및 course.cutstr 항목은 hkey_classes_root 아래에 있습니다. 이는 구성 요소 등록이 성공했음을 나타냅니다.
⑵. MTS에 등록 :
①. 시작 >> 프로그램 >> 관리 도구 >> 구성 요소 서비스
②. 디렉토리를 다음 상태로 확장하십시오.
③. 다음 대화 상자까지 다음 단계를 따라 마법사를 따르십시오. 빈 응용 프로그램 만들기를 클릭하십시오.
④. 다음 대화 상자에서 신청 코스의 이름을 지정하고 다른 기본값이 완료 될 때까지
⑤. 코스 응용 프로그램을 확장하고 마우스 오른쪽 버튼으로 클릭하고 새 구성 요소를 만듭니다.
⑥. 프롬프트를 따르고 다음 대화 상자가 나타나면 등록 된 구성 요소를 선택하십시오.
⑦. 우리가 개발 한 구성 요소를 선택하고 다음 단계가 끝날 때까지
⑧. 현재 코스 응용 프로그램에는 두 가지 추가 구성 요소가 있음을 알 수 있습니다.
4. ASP에서 호출 구성 요소
asp_use_com.asp
<%
'ASP는 com 구성 요소를 호출합니다
set cutstr_obj = server.createobject (course.cutstr)
Response.write Cutstr_OBJ.Cutstr (Abcdefghijk, 3) & <br>
cutstr_obj = 아무것도 설정하지 않습니다
set conn_obj = server.createobject (course.conn_db)
conn_obj.conn_db ()
conn_obj = 아무것도 설정하지 않습니다
%>
효과:
알파벳...
아하이
Tuth
그것은 전화가 성공했다는 것을 의미합니다.
5. 구성 요소를 제거하십시오
⑴. regvr32를 사용하여 -U 스위치를 사용하여 구성 요소를 제거하십시오.
참고 : 먼저 구성 요소 DLL이있는 디렉토리를 입력 한 다음 Regsvr32 –U Dll_File_Name을 사용하여 제거 후 IIS를 다시 시작하십시오.
⑵. MTS 등록 구성 요소를 사용하여 먼저 구성 요소 서비스에서 해당 응용 프로그램을 삭제 한 다음 1 단계를 수행하여 구성 요소를 완전히 제거하십시오.
6. DLL 구성 요소 저장 위치 및 권한 설정
⑴. 컴파일 된 DLL 파일을 복사하면됩니다. 다른 파일을 처리 할 필요가 없습니다.
⑵. 다운로드를 방지하기 위해 System32 디렉토리와 같이 웹 사이트 외부에 DLL을 넣으십시오.
⑶. DLL의 파일 권한은 시스템 읽기로 설정되었으며 인터넷 사용자는 폴더를 가로 지르거나 파일을 실행합니다.
⑷. DLL은 읽기, 자발적인 스크립트에 대한 자발적 액세스 등과 같은 IIS의 모든 권한을 제거합니다.
위의 처리 후 DLL 파일의 보안이 보장 될 수 있습니다.
7. 다른
구성 요소에서 ASP의 객체를 사용하여 COM 구성 요소에 편리하게 포트 ASP 코드를 사용하는 방법은 무엇입니까?
5. IIS 최적의 구성
1. 웹 사이트 탭 : IP, 포트, 가상 호스트, 연결, 로그
2. ISAPI 필터 : PHP 및 JSP 지원을 추가하십시오
3. 홈 디렉토리 구성 탭 : 나는 권한 설정 (파일 권한과 결합), 실행 권한, 응용 프로그램 보호, 매핑, 버퍼링, 부모 경로, 오류 정보입니다.
4. 기타 탭 : 사용자 정의 오류, HTTP 헤더, 디렉토리 보안, 문서
5. 파일 압축의 이점과 단점
기타
1. 이메일 보내기 (Jmail; MS SMTP)
Microsoft SMTP를 사용하여 이메일을 보냅니다
⑴. Microsoft SMTP 서비스를 설치하십시오
⑵. Microsoft SMTP 서비스 설정
⑶. 코드 섹션 :
mail_smtp.asp
<%
하위 송송 (Who, Towho, 주제, 신체)
마이 메일을 어둡게합니다
set mymail = server.createobject (cdonts.newmail)
mymail.from = fromwho
mymail.to = towho
mymail.subject = 주제
mymail.body = body
mymail.send
mymail = 아무것도 설정하지 않습니다
종료 서브
%>
이 서브 루틴은 다음 항목에 해당하는 4 개의 매개 변수를 허용합니다.
l 발신자의 이메일 주소
l 이메일 수신자의 이메일 주소
레마 주제
레마 내용
사용 방법 :
<%
Who =…
towho =…
주제 =…
몸 =…
TOWHO <>라면
WHO, TOWHO, 주제, 신체에서 보내기
끝 If
%>
Jmail을 사용하여 이메일을 보내십시오
관심이 있으시면 Jmail 소프트웨어도 있습니다.
2. zip zip files (wscript.shell 및 winzip 명령 줄; Java 구성 요소)
⑴. Winzip 8.1 이상을 설치하십시오
⑵. WinZip 명령 줄을 설치하십시오
⑶. 인터넷 사용자가 읽고 작성 및 수정할 작업 디렉토리의 파일 권한을 설정
⑷. 코드 섹션 :
unzip_a_zipfile.asp
<%
'쉘 객체로 프로그램을 시작하십시오
'zip_path는 c : /test.zip과 같은 특정 zip 파일의 경로입니다.
'경로는 압축 된 파일을 저장하는 경로입니다
'OND는 명령 줄 매개 변수입니다
set wshshell = server.createobject (wscript.shell)
ressue = wshshell.run (wzunzip -ond & zip_path & & path, 1, true)
'zip 파일을 삭제하십시오
myFileObject = server.createObject (scripting.filesystemobject)
myfileobject.deletefile zip_path
'운영을 계속하는 것이 성공적인지 판단하십시오
문제 = 0이면
'성공
...
또 다른
'실패하다
...
끝 If
%>
3. XML 파일을 작동합니다
교환 시간이 제한되어 있으므로 시간이 있으면 자세히 논의 해 봅시다.
4. 파일 업로드
⑴. 파일 업로드 컴포넌트 ASP 파일 업을 설치합니다 (여러 파일 업로드, 파일 유형 및 크기 판단, 파일 이름 변경 후 업로드 후 파일 이름 변경 등)
⑵. 업로드 구성 요소를 효과적으로 만들려면 IIS를 다시 시작하십시오
⑶. 인터넷 사용자가 읽고, 쓰기 및 수정할 수 있도록 업로드 디렉토리의 파일 권한을 설정하십시오.
⑷. 코드 섹션
upload_file.htm
<스타일 유형 = 텍스트/CSS>
<!-
.input {back : 조지아; 글꼴 크기 : 9pt; 컬러 : Midnightblue;}
A : 링크 {색상 : #1B629C;
A : hover {컬러 : #ff6600;
A : 방문 {Text-Decoration : None}
->
</스타일>
<centre>
<양식 ENCTYPE = 멀티 파트/양식-데이터 메서드 = post action = upload_file.asp name = ubload>
<입력 유형 = 숨겨진 이름 = 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>
</센터>
upload_file.asp
<%
다음에 오류가 재개됩니다
'파일 접미사를 얻는 함수를 정의하십시오
함수 getFileExtName (filename)
pos = instrev (filename,.)
POS> 0이라면
getfileextname = mid (filename, pos+1)
또 다른
getFileExtName =
끝 If
엔드 기능
'파일이 올바른 이름을 얻기 위해 함수를 정의하십시오
함수 getFileName (filename)
렌즈 = len (filename) -len (getfileextname (filename)) -1
getFilename = 왼쪽 (파일 이름, 렌즈)
엔드 기능
'파일 업로드 구성 요소의 개체를 만듭니다
set fileup = server.createObject (iniations.upload)
'사용자 루프에서 업로드 한 파일을 읽고 서버에 저장하십시오.
FileUp.files의 각 F에 대해
'사용자가 파일을 선택하지 않거나 파일 크기가 10m를 초과하면 파일을 업로드하도록 파일을 선택한 페이지로 돌아갑니다.
f.filename = 또는 f.fileSize> 10485500 인 경우 response.Redirect upload_file.htm
'저장된 경로를 얻으십시오
path = server.mappath (upload_file.asp)
경로 = 왼쪽 (Path, Len (Path) -15)
'파일을 저장하십시오
F.Saveas Path & GetFilename (F.Filename) &. & getFileExtName (F.Filename)
다음
Response.redirect upload_file.htm
%>
5. 드라이브/디렉토리/파일 작업
교환 시간이 제한되어 있으므로 시간이 있으면 자세히 논의 해 봅시다.
6. ASP 작성 및 디버깅 경험 : 쿠키 및 세션을 선택하는 방법, 쿠키 트랩 수, 페이지 만료 및 버퍼링 설정, 휴대 성을 보장하는 방법, 내부 서버에서 500 가지 오류를 처리하는 방법 ...
1. 쿠키 및 세션 선택 :
⑴. 일반적인 기능
⑵. 차이 :
①. 일하는 방법
②. 만료 조건
③. 서버 성능에 미치는 영향
2. 쿠키 번호 트랩 :
IIS는 20 개 이하의 일반 쿠키를 절약 할 수 있습니다.
답은 2D 쿠키를 사용하는 것입니다.
예:
1D 쿠키 수의 한계를 테스트하십시오.
test_cookies_1.asp
<%
i = 1 ~ 50의 경우
응답 .cookies (cookies_ & i) = i
다음
%>
test_cookies_2.asp
<%
i = 1 ~ 50의 경우
응답
다음
%>
효과:
먼저 test_cookies_1.asp를 방문한 다음 test_cookies_2.asp를 찾으십시오. 무엇을 찾았습니까?
test_cookies_3.asp
<%
i = 1 ~ 50의 경우
응답 .cookies (cookies_ & i) = i
다음
i = 1 ~ 50의 경우
응답
다음
%>
효과:
쿠키가 손실되지 않습니다! ! ! !
2D 쿠키 수의 한계를 테스트하십시오.
test_cookies_4.asp
<%
i = 1 ~ 301의 경우
응답 .cookies (tuht) (cookies_ & i) = i
다음
%>
test_cookies_5.asp
<%
i = 1 ~ 301의 경우
응답
다음
%>
효과:
이 방법을 사용하여 201*20 = 4020 쿠키를 사용하십시오! ! ! !
3. 페이지 만료 및 버퍼링 설정
<%
'만료 및 버퍼링
응답 .buffer = true
응답 .cachecontrol = no-chache
응답 .expiresabsolute = now () -1
응답 .expires = 0
%>
HTML에서 설정을 할 수도 있습니다.
<메타 컨텐츠 = No-Cache http-equiv = pragma>
<meta http-equiv = 만료 된 내용 = 0>
4. 이식 가능성을 보장합니다
⑴. 파일 포함
<!-#포함 파일 = top.asp->
⑵. Server.mappath를 사용하여 파일 경로를 찾고 페이지에서 직접 절대 경로를 사용하지 마십시오.
⑶. 구성 요소를 사용하여 비즈니스 로직을 캡슐화하십시오
5. 오류 디버깅 내부 서버 500
⑴. 특정 오류 메시지를 표시하도록 IIS를 설정하십시오
⑵. 단계별 디버깅, 위에서 아래로
⑶. 중요한 변수의 값을 인쇄하고 예상되는지 확인하십시오.
⑷. 경험을 바탕으로 오류를 판단합니다
7. 단어 문서를 작동합니다
⑴. Word 2000에 필요한 Office 2000을 설치하십시오
⑵. IE에서 인터넷 보안 설정 : 모든 ActiveX 컨트롤 및 플러그인이 활성화됩니다.
⑶. 인터넷 및 시스템을 읽고/수정/쓰기 위해 작업 디렉토리의 파일 권한을 설정하십시오.
⑷. 템플릿 코스를 작성하십시오
⑸. 특정 코드 :
opr_doc_inc.asp
<%
응답. Dim Var_num & Chr (13)
응답. var_num = 2 & chr (13)
응답. 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)
응답. Dim Varvalues (2) 및 chr (13)
응답. varvalues (0) = & chr (34) & Drafter : Tu Haitao & Chr (34) & chr (13)
응답. varvalues (1) = & chr (34) & date : & date () & chr (34) & chr (13)
%>
대신 하위 (Word)
MyRange = Word.ActivedOcument.Content를 설정합니다
i = 0 ~ var_num -1의 경우
MyRange.Find.Execute (varstrings (i), false, false, false, false, false, false, false, false, false, varvalues (i), 2)
다음
종료 서브
opr_doc.asp
<%
'저장된 경로를 얻으십시오
path = server.mappath (opr_doc.asp)
경로 = 왼쪽 (Path, Len (Path) -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.wart.wath%> course.dot
<%응답. W1%>를 씁니다
Word.documents.close
단어 = 아무것도 설정하지 않습니다
끝 If
<!-#include file = opr_doc_inc.asp->
희미한 wapp
set wapp = createobject (Word.application)
err.number> 0 인 경우
경고에서 오류가 발생했습니다. 파일이 올바르게 생성되었는지 확인하십시오.
또 다른
wapp.visible = true
<%response.w2%>
대신 전화 (wapp)
WAPP = 아무것도 설정하지 않습니다
끝 If
</스크립트>
효과 : DOC 파일이 생성되었는지 확인하십시오. 새로 만든이 새로 생성 된 DOC 파일과 템플릿 파일의 차이점은 무엇입니까? DRAFTER와 날짜가 변경 되었습니까? 저장하고 새로 생성 된 DOC 파일의 내용을 확인하십시오.
첨부된:
1. 위의 모든 코드는 Windows 2000 서버 SP2+IIS 5.0+MS SQL Server 2000+Office 2000에서 테스트하고 전달되었습니다.
2. 데이터베이스 구성 : 데이터베이스 이름 코스, 사용자 코스 _user, 암호 코스 _password, ODBC 드라이버는 Course_dsn, 포트는 2433, 테이블 구조를 설명하는 스크립트는 공유 디렉토리에 있습니다.
3. 소프트웨어 ASP 파일 업, Jmail, Winzip 8.1 및 Winzip 명령 줄을 직접 다운로드하십시오.
4. 데이터베이스 스크립트 파일 :
존재하는 경우 (dbo.sysobjects에서 * select id = object_id (n '[dbo]. [output_1]') 및 ObjectProperty (id, n'isprocedure ') = 1).
드롭 절차 [DBO]. [output_1]
가다
경우 (dbo.sysobjects에서 * 선택 * id = object_id (n '[dbo]. [return_1]') 및 ObjectProperty (id, n'isprocedure ') = 1)
삭제 절차 [DBO]. [return_1]
가다
경우 (dbo.sysobjects에서 * 선택 * id = object_id (n '[dbo]. [user_info_1]') 및 ObjectProperty (id, n'isprocedure ') = 1)
삭제 절차 [dbo]. [user_info_1]
가다
경우 (dbo.sysobjects에서 * 선택 * id = object_id (n '[dbo]. [user_info_2]') 및 ObjectProperty (id, n'isprocedure ') = 1)
삭제 절차 [dbo]. [user_info_2]
가다
경우 (dbo.sysobjects에서 * 선택 * id = object_id (n '[dbo]. [user_info_3]') 및 ObjectProperty (id, n'isprocedure ') = 1)
삭제 절차 [dbo]. [user_info_3]
가다
경우 (dbo.sysobjects에서 * 선택 * id = object_id (n '[dbo].
드롭 테이블 [dbo]. [user_info]
가다
테이블 작성 [dbo]. [user_info] (
[id] [int] 정체성 (1, 1) null,
[user_name] [varchar] (40) Collate Chinese_prc_ci_as not null,
[비밀번호] [Varchar] (20) Collate Chinese_PRC_CI_AS NOT NULL
)에서 [1 차]
가다
Alter Table [dbo]. [user_info] nocheck add가 있습니다
제약 조건 [pk_user_info] 1 차 키 클러스터
(
[user_name]
)에서 [1 차]
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 설정하십시오
가다
프로 시저 작성 [output_1]
@SID int 출력
처럼
@sid = 2를 설정하십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 켜십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 설정하십시오
가다
프로 시저 작성 [return_1]
(@user_name varchar (40),@password varchar (20))
처럼
존재하는 경우 (user_name =@user_name 및 password =@password에서 user_info에서 id를 선택하십시오)
반환 1
또 다른
반환 0
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 켜십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 설정하십시오
가다
프로 시저 작성 [user_info_1]
(@user_name varchar (40),@password varchar (20))
처럼
user_name =@user_name 및 password =@password에서 user_info에서 id를 선택하십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 켜십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 설정하십시오
가다
프로 시저 작성 [user_info_2]
(@user_name varchar (40),@password varchar (20))
처럼
xact_abort를 켜십시오
거래를 시작하십시오
user_info user_name =@user_name 및 password =@password에서 삭제합니다
거래를 커밋합니다
xact_abort를 설정하십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 켜십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 설정하십시오
가다
절차 [user_info_3] AS를 작성하십시오
user_info에서 *를 선택하십시오
가다
quoted_identifier를 설정하십시오
가다
ansi_nulls를 켜십시오
가다