ASP로 개발작업을 할때 db연결 부분이나 공통으로 필요한 부분은 따로 파일로 작성해서
필요시 포함해서 쓰는 경우가 많습니다.

첫번째는 #include 를 이용한 방법이고 두번째는 Server.Execute를 이용한 방법입니다.
근데 이 두가지 방법이 외부파일을 포함해서 쓰는 공통의 방법이면서 몇가지 차이점이 있습니다.

 

차이점
1) #include는 IIS에서 ASP 파일을 실행하기 이전에 먼저 처리하지만 Server.Execute는 ASP 파일 실행시 같이 처리하게  됩니다.

   두문장이 삽입되는 생김새만 봐도 눈치챌수 있습니다.
2) #include는 삽입되는 파일과 삽입하는 파일의 변수가 공유가 되지만 Server.Execute는 변수 공유가 되지 않습니다.
   이부분은 아래 예제를 보면 이해가 가실겁니다.


예제1) Test.ASP파일의 내용이 다음과 같다고 할때
<% moneyValue = 100%>



#include로 test.asp를 포함시킨  moneyValue의 값은 100이 출력됩니다.
<%

  moneyValue = "10000"

%>
<!--#include file="test.asp"-->
<%
 
  Response.Write moneyValue
 
%>



Server.Execute로 test.asp를 포함시킨 moneyValue의 값은 Test.asp파일의 내용을 무시하고 그냥 100이 출력됩니다.

<%

  moneyValue = "10000"


  Server.Execute("Test.asp")
 
  Response.Write moneyValue
 
%>


그래도 Server.Execute문을 써야할때가 있습니다. 파일을 동적으로 삽입시켜야 할때입니다.
위에서 보셨듯이 #include는 asp구문이 끝난다음 삽입됩니다. html의 주석처리 이후에 #include문을
쓰기 때문에 <!--#include file=<%Thema%>--> 이런식으로 쓸수가 없습니다.

하지만 Server.Execute는 특정변수에다 조건에 따라서 삽입되는 파일경로를 달리하여
다음과 같이 쓸수 있습니다.
<%
 if chkThema = 1 then
   Thema = "event.asp"
 else
   Thema = "nomal.asp"
 end fif

 Server.Execute(Thema)
%>

2008/02/21 15:49 2008/02/21 15:49

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다