ASP 강의 시리즈 (7) 구성 요소 및 개체 사용
저자:Eve Cole
업데이트 시간:2009-05-30 19:59:15
ActiveX 구성 요소는 강력한 웹 응용 프로그램을 구축하는 데 핵심입니다. 구성 요소는 작업을 수행하기 위해 스크립트에서 사용되는 개체를 제공합니다. ASP는 또한 스크립트에서 사용할 수 있는 내장 개체를 제공합니다. 이 항목에서는 구성 요소에서 제공하는 개체와 Active Server Pages에서 직접 제공하는 기본 제공 개체를 사용하는 방법에 대해 설명합니다.
구성 요소 정보
ActiveX 구성 요소는 작업 또는 작업 집합을 수행하는 코드가 포함된 파일입니다. 구성 요소는 일반적인 작업을 수행할 수 있으므로 해당 작업을 직접 수행하기 위해 코드를 만들 필요가 없습니다. 예를 들어 티커 구성 요소는 웹 페이지에 최신 주식 시세를 표시할 수 있습니다. ASP에는 데이터베이스 액세스 구성 요소와 같이 바로 사용할 수 있는 구성 요소가 함께 제공됩니다. 타사 개발자로부터 선택적 구성 요소를 얻습니다. 아니면 자신만의 구성요소를 작성할 수도 있습니다.
구성 요소를 스크립트 및 웹 기반 응용 프로그램의 기본 빌딩 블록으로 활용할 수 있습니다. 구성 요소에서 제공하는 개체에 액세스하는 방법만 알아두세요. 초보 스크립터라도 구성 요소의 작동 방식을 이해하지 않고도 스크립트를 작성할 수 있습니다. 요약하자면, 구성 요소를 사용하면 프로그래밍을 배우지 않고도 강력한 스크립트를 작성할 수 있습니다.
웹 애플리케이션 개발자라면 구성 요소를 작성하여 비즈니스 논리를 캡슐화할 수 있습니다. 예를 들어, 제품에 대한 판매세를 계산하는 구성 요소를 작성할 수 있습니다. 그런 다음 판매 주문을 처리하는 스크립트에서 이 구성 요소를 호출할 수 있습니다. 주문 처리 중에 세율을 독립적으로 계산하면 판매세가 어딘가에 변경될 때 전체 처리 프로세스를 변경할 필요 없이 구성요소만 업데이트할 수 있습니다. 구성 요소는 C, C++, Java 또는 Visual Basic과 같이 COM(구성 요소 개체 모델)을 지원하는 모든 언어로 작성할 수 있습니다. COM 프로그래밍에 익숙하다면 ActiveX 구성 요소는 자동화 서버입니다. 웹 서버에서 실행하기 위해 ActiveX 구성 요소는 Visual Basic의 MsgBox 기능과 같은 그래픽 사용자 인터페이스 요소를 가질 수 없습니다.
구성 요소는 재사용이 가능합니다. 웹 서버에 구성 요소가 설치되면 ASP 스크립트, ISAPI 응용 프로그램, 서버의 다른 구성 요소 또는 다른 COM 호환 언어로 작성된 프로그램에서 해당 구성 요소를 호출할 수 있습니다.
구성 요소 개체를 생성하는 인스턴스 구성 요소는 동적 링크 라이브러리(.dll) 또는 실행 파일(.exe)에 포함된 실행 코드입니다. 구성 요소는 하나 이상의 개체와 해당 메서드 및 속성을 제공할 수 있습니다. 구성 요소에서 제공하는 개체를 사용하려면 개체의 인스턴스를 만들고 이 새 인스턴스에 변수 이름을 할당합니다. ASP의 Server.CreateObject 메서드를 사용하여 개체 인스턴스를 만들 수 있습니다. 다음으로, 스크립팅 언어의 변수 할당 지침을 사용하여 개체 인스턴스의 이름을 지정합니다. 객체 인스턴스를 생성할 때 인스턴스의 등록된 이름(PROGID)을 제공해야 합니다. ASP에서 제공하는 기본 구성 요소의 경우 개체의 PROGID는 참조 페이지에서 얻을 수 있습니다.
예를 들어 ASP의 Ad Rotator 구성 요소는 그래픽 광고를 반복합니다. Ad Rotator 구성 요소는 PROGID가 "MSWC.AdRotator"인 Ad Rotator라는 개체를 제공합니다. Ad Rotator 개체의 인스턴스를 만들려면 다음 명령을 사용하세요.
VB스크립트:
<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
J스크립트:
<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
VBScript 또는 JScript에 이미 매우 익숙하다면 VBScript의 CreateObject 또는 JScript의 New와 같은 새 개체 인스턴스를 생성하기 위한 스크립팅 언어 함수가 없다는 것을 알 수 있습니다. ASP의 Server.CreateObject 메서드를 사용해야 합니다. 그렇지 않으면 ASP가 스크립팅 언어에서 개체 사용을 추적할 수 없습니다.
객체 인스턴스는 HTML <OBJECT> 태그를 사용하여 생성할 수도 있습니다. RUNAT 속성에 대한 서버 값을 제공하고 스크립트 언어에서 사용될 변수 이름에 대한 ID 속성 그룹도 제공해야 합니다. 개체는 등록 이름(PROGID) 또는 등록 번호(CLSID)를 사용하여 식별할 수 있습니다. 다음 예에서는 등록된 이름(PROGID)을 사용하여 Ad Rotator 개체의 인스턴스를 만듭니다.
<OBJECT RUNAT=서버 ID=MyAd PROGID="MSWC.AdRotator"></OBJECT>
다음 예에서는 등록 번호(CLSID)를 사용하여 Ad Rotator 개체의 인스턴스를 만듭니다.
<OBJECT RUNAT=서버 ID=MyAd
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>
Java 클래스에서 객체 생성 Java 언어로 작성된 ActiveX 구성 요소는 DLL 대신 Java 클래스로 제출될 수 있습니다. Server.CreateObject를 사용하여 Java 클래스 개체의 인스턴스를 만들려면 Javareg 프로그램을 사용하여 해당 클래스를 COM 구성 요소로 등록해야 합니다. 그런 다음 PROGID 또는 CLSID와 함께 Server.CreateObject를 사용할 수 있습니다.
개체 인스턴스가 ASP 내장 개체에 액세스하고 트랜잭션에 참여할 필요가 없으면 Java 모니터에서 제공하는 더 간단한 메커니즘을 사용하여 Java 클래스를 직접 호출할 수 있습니다. Java 모니터를 사용하려면 Java 2.0용 Microsoft 가상 머신(Internet Information Server 및 Personal Web Server 배포판에서 제공)을 사용해야 합니다.
모니터를 사용하여 개체를 인스턴스화하려면 VBScript 또는 JScript GetObject 명령을 사용하고 java:classname 형식으로 Java 클래스의 전체 이름을 제공해야 합니다. 다음 VBScript 예제에서는 Java Date 객체의 인스턴스를 생성합니다.
<%
희미한 날짜
날짜 설정 = GetObject("java:java.util.Date")
%>
<p> 날짜는 <%= date.toString() %>입니다.
Server.CreateObject 대신 GetObject를 호출하여 생성된 개체는 ASP 기본 제공 개체에 액세스할 수 없으며 트랜잭션에 참여할 수 없습니다.
ASP 내장 개체 사용
ASP는 작업을 수행하는 내장 개체를 제공합니다. 예를 들어, Request 객체는 HTML 테이블의 참조를 저장합니다.
객체 메소드 호출 메소드는 객체에 대해 수행되거나 객체를 사용하여 수행될 수 있는 활동입니다. 메소드 호출을 위한 일반적인 구문은 다음과 같습니다.
Object.Method 매개변수
매개변수는 방법마다 다릅니다.
예를 들어, 다음 지침에 따라 Response 내장 개체의 Write 메서드를 사용하여 브라우저에 정보를 보낼 수 있습니다.
<% 응답."Hello World" 쓰기 %>
일부 스크립팅 언어는 Object.Method 구문을 지원하지 않습니다. 사용 중인 언어가 이 구문을 지원하지 않는 경우 해당 언어를 기본 스크립트 언어로 사용하려면 레지스트리에 항목을 만들어야 합니다.
객체 속성 설정 속성은 객체를 설명하는 특성 값입니다. 속성은 개체의 특성(예: 개체 유형) 또는 개체의 상태(예: 활성화 또는 비활성화)를 정의합니다. 일반적인 구문은 다음과 같습니다.
객체.속성
속성 값을 읽고 설정할 수 있습니다. 일부 개체의 경우 새 속성을 추가할 수도 있습니다.
예를 들어 Ad Rotator 구성 요소에는 광고에 테두리가 있는지 여부와 테두리 두께를 지정하는 Border 속성이 있습니다. 다음 표현식은 테두리를 지정하지 않습니다.
<% MyAds.Border = 0 %>
ASP 출력 지시문을 사용하여 특정 속성의 현재 값을 표시할 수 있습니다. 예를 들어, 다음 명령은 브라우저가 여전히 서버에 연결되어 있으면 TRUE를 반환합니다.
<%= Response.IsClientConnected %>