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)
%>