ASP 강의 4: ASP 내장 구성 요소
저자:Eve Cole
업데이트 시간:2009-05-30 19:58:14
처음 세 번의 강의에서는 ASP가 제공하는 네 가지 내장 개체를 주로 소개했습니다.
응답 객체: 브라우저에 정보를 보냅니다.
요청 객체: 브라우저에서 서버로 전송된 액세스 정보(예: 양식 데이터 가져오기)
세션 객체: 특정 사용자 대화 정보를 저장하고 읽습니다.
애플리케이션 객체: 모든 사용자가 공유하는 애플리케이션 정보를 저장하고 읽습니다.
또한 향후 예제에서 배울 Server 개체와 ObjectContext 개체가 있습니다(힌트: 실제로 배운 지식을 깨닫지 못한 채 온라인 채팅방을 작성하는 데 이미 사용할 수 있습니다). 본 강의의 내용은 ASP의 ActiveX Server Components(컴포넌트)를 사용하는 것입니다.
1. 브라우저 기능 구성요소:
예를 들어, 일부 브라우저는 프레임을 지원하고 일부는 지원하지 않습니다. 이 구성 요소를 사용하면 웹 페이지가 브라우저마다 다른 페이지를 표시할 수 있도록 브라우저의 기능을 확인할 수 있습니다(예: Frame을 지원하지 않는 브라우저의 경우 Frame 없이 웹 페이지 표시). 이 구성 요소의 사용은 매우 간단합니다. 이 구성 요소를 올바르게 사용하려면 Browscap.ini 파일이 최신 상태인지 확인해야 합니다. 실제로 모든 브라우저와 해당 기능이 이 파일에 나열되어 있습니다. ) 그렇지 않으면 결과가 매우 다를 수 있습니다. 예를 들어, 다음 예에서는 Win98의 두 번째 버전에 포함된 IE5.0이 Netscape로 표시됩니다. 이 파일은 일반적으로 웹 서버의 "WinntSystem32InetSrv" 아래에 있습니다. 최신 버전은 http://www.asptracker.com/ 또는 http://www.cyscape.com/browscap에서 다운로드할 수 있습니다.
예: wuf22.asp
<html>
<본문>
'참고: 컴포넌트의 사용은 객체의 사용과 유사하지만 사용하기 전에 컴포넌트를 생성해야 하며 내장 객체를 사용하기 전에 생성할 필요가 없습니다.
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
기다리세요......
<피>
<테이블 테두리=1 셀 패딩=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>자바스크립트 지원 여부</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>쿠키 지원 여부</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>
</TABLE>
<%BrowsCap 설정 = 없음%>
</BODY>
</HTML>
참고: 이 예에서는 Server 개체의 CreateObject 메서드도 다루었습니다. Server.CreateObject는 서버에 등록된 ActiveX 구성 요소를 만드는 데 사용됩니다(참고: 구성 요소를 만드는 다른 방법이 있습니다). 하지만 시간에 맞춰 리소스를 해제하려면 "Set Object = Nothing"을 사용하는 것을 잊지 마세요.
2. 파일 액세스 구성 요소
File Access 구성 요소는 FileSystemObject 개체와 TextStream 개체로 구성되며 FileSystemObject 개체를 사용하여 디렉터리 및 파일을 생성, 검색 및 삭제할 수 있으며 TextStream 개체는 파일 읽기 및 쓰기 기능을 제공합니다.
예 wuf23.asp. 강조: 연습을 통해서만 이해가 깊어질 수 있습니다. 프로그램 실행 결과를 연습하고 비교하는 것이 프로그래밍 기술을 빠르게 익히는 가장 좋은 방법입니다.
<%@ 언어=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")
응답.쓰기 경로 & "<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
고리
응답.StrNoHTML 쓰기
응답.StrHTML 쓰기
CTF.닫기
Set CTF = Nothing '개체를 해제합니다.
FSO = 없음 설정
%>
CTF = FSO.OpenTextFile(File, 8, False, 0), 괄호 안의 첫 번째 매개변수는 파일 이름이고, 두 번째 매개변수는 8이며, 이는 원본 파일 뒤에 내용을 추가한다는 의미입니다. -only, 2이면 원본 파일을 다시 작성합니다. 세 번째 매개변수 false는 지정된 파일이 없으면 파일이 생성되지 않음을 의미하고, True이면 지정된 파일이 생성되지 않음을 의미합니다. 존재하면 파일이 생성됩니다. 네 번째 매개변수 0은 ASCII 파일 형식으로 열림을 의미합니다. -2는 원래 형식으로 열림을 의미합니다.
CTF = FSO.CreateTextFile(File,False, False), 두 번째 매개변수 false는 기존 파일을 덮어쓰지 않음을 의미하고, True이면 기존 파일을 덮어쓰기(OverWrite)한다는 의미입니다. 세 번째 매개변수 false는 파일 형식이 ASCII임을 의미합니다. , True이면 파일 형식이 유니코드임을 나타냅니다.
Server 개체의 MapPath 메서드는 지정된 가상 경로를 실제 파일 경로로 변환합니다. MapPath는 "/" 및 "" 문자를 동일하게 처리합니다.
Server 개체의 HTMLEncode 메서드를 사용하면 특정 문자열을 HTML로 인코딩하거나 브라우저에서 특정 문자를 올바르게 표시할 수 있습니다. 위의 예에서는 인코딩되지 않은 경우 "<P>"가 표시되지 않지만 브라우저에서는 HTML 태그로 처리되어 실행 결과를 비교할 수 있습니다.
실제로 파일 액세스 구성 요소는 파일, 폴더 및 드라이브를 운영하는 데 상대적으로 강력하며 더 많은 방법도 제공합니다. 이 지식을 사용해야 하는 경우 사용하는 것을 잊지 마십시오.
또한, 지금쯤이면 웹 페이지 카운터를 작성하는 것이 매우 쉬워졌습니다. 많은 웹 페이지에서 무료 카운터를 제공하는 것도 당연합니다. 어때요? 원하는 만큼 속일 수 있는 그래픽 카운터를 직접 작성해 보세요. 정말 멋집니다. (작은 비밀: 내 홈페이지에 wuf24.asp 인스턴스가 있습니다)
3. AD 로테이터(광고 뒤집기 구성요소)
요즘 인터넷 서핑을 할 때 내가 가장 싫어하는 것은 남의 홈페이지에 있는 광고 배너이고, 내가 가장 좋아하는 것은 내 홈페이지에 있는 광고 배너이다. 광고 배너는 스팸처럼 곳곳에 있어 차단하기 어렵다. ASP의 AD Rotator 구성 요소는 웹 페이지를 열거나 다시 로드할 때마다 무작위로 광고를 표시할 수 있습니다. 이 예는 세 부분으로 구성됩니다.
루틴 wuf25.asp
<%@ 언어=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의 내용(이 파일의 내용이 아닌 주석이 이어짐):
REDIRECT 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
이 예시에는 3개의 사진(사진 크기 468X60)이 있으며, 각 링크에 대한 설명은 4줄을 차지합니다. 실제 사용 시에도 동일한 방법으로 사진을 더 추가할 수 있습니다.
<% 'wuf26.asp
URL = Request.QueryString("url")
응답.리디렉션(URL)
%>
wuf26.asp는 가장 간단한 처리 프로그램이므로 실제 필요에 따라 여기에 더 많은 코드를 추가할 수 있습니다.
이를 실행해 보면 이 구성 요소의 사용도 매우 간단하다는 것을 알 수 있습니다. 여러분이 해야 할 일은 자신만의 AdrSet.txt 파일을 얻는 것뿐입니다. 이 구성요소를 사용하면 현재 매우 트렌디한 Ad Exchange 홈페이지를 디자인할 수도 있습니다.
4. 콘텐츠 연결 구성요소 분명히 이 구성요소는 링크와 관련되어 있습니다. 이 구성요소의 구체적인 용도를 바로 알고 싶다면 너무 성급할 것 같습니다. 먼저 고전적인 예를 인용하는 것이 좋습니다. 인터넷에 있는 책의 경우 다음 링크에 익숙하지 않아야 합니다. 1장, 2장,..., 이전 장, 다음 장(또는 이전 페이지, 다음 페이지) 등. 이제 우리가 해야 할 일은 이러한 링크 간의 점프를 쉽고 빠르게 설정하는 방법입니다.
먼저 urllist.txt와 같은 링크 목록 텍스트 파일을 만듭니다.
wuf23.asp 1장: 파일 작업(파일 액세스 구성 요소)
wuf28.asp 2장: 콘텐츠 연결 구성 요소 사용 예
wuf22.asp 3장: 브라우저 기능 구성 요소 링크 URL 주소와 설명은 Tab 키로 구분됩니다. 다음 wuf27.asp는 urllist.txt의 모든 링크를 나열하는 데 사용됩니다.
<% @LANGUAGE = VBScript %>
<% 옵션 명시적 %>
<html><head><title>콘텐츠 연결 구성요소 사용</title></head>
<본문>
<h2>목차: 핵심 링크는 2장이므로 클릭해야 합니다.</h2>
<ul>
<%
Dim Next링크, 카운트
'컨텐츠 연결 구성요소 생성
NextLink = Server.CreateObject("MSWC.NextLink") 설정
'urllist.txt 파일의 링크 수를 가져옵니다.
개수 = NextLink.GetListCount("urllist.txt")
희미한 URL, Dscr, I
I = 1 계산
url = NextLink.GetNthURL ("urllist.txt", I) '하이퍼링크 가져오기
Dscr = NextLink.GetNthDescription ("urllist.txt", I) '텍스트 설명 가져오기
응답.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
다음
%>
</ul></body></html>
그런 다음 wuf28.asp를 예로 들어 이전 장과 다음 장으로 자동으로 이동하는 방법을 설명합니다.
<% @LANGUAGE = VBScript %>
<% 옵션 명시적 %>
<html><head><title>이 링크를 주목하세요</title></head>
<본문>
<p>2장의 내용은 이렇습니다......</p>
<% '각 파일에는 자동 연결을 위해 다음 문장이 포함되어 있습니다.%>
<!--#include 파일="wuf29.asp"-->
</body></html>
여기에 마지막 문장을 추가하면 자동 점프가 가능해집니다. 핵심은 wuf29.asp에 있습니다.
<%
Dim Next링크, 순위
NextLink = Server.CreateObject("MSWC.NextLink") 설정
'urllist.txt의 현재 링크는 무엇입니까?
순위 = NextLink.GetListIndex("urllist.txt")
응답.쓰기 "<hr>"
If (순위 > 1) Then '순위 = 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를 통해 완전히 수행할 수 있습니다. . 별로 편리하지 않나요? ! 그렇지 않고 링크를 수동으로 수정하면 너무 번거롭지 않을까요?
이제 인터넷에는 무료 카운터, 무료 게시판, 무료 채팅방, 광고 교환 네트워크 등이 많이 있다는 것을 이해해야 합니다. 그들의 원칙은 이것에 지나지 않으므로 숭배할 필요가 없습니다.