Server
Object
1) CreateObject 메소드
Server 객체의 가장 유용한 메소드이자, 끝내주는 메소드입니다. 이 메소드가 없이는 ASP 페이지는 앙꼬없는 찐빵과 다를 바가 없지요... 도대체 이 메소드가 무언데 그러느냐구요?
ASP 페이지는 많은 기능을 가지고 있지만.. 그렇다고 모든 기능을 가진 것은 아닙니다. 예를 들면 ASP 페이지는 그 자신만으로는 파일을 다룰 수가 없습니다. 이것은 파일을 다루는 컴포넌트인 FileSystemObject 의 도움을 받아서 파일을 제어할 수가 있지요..
또한, ASP 혼자만으로는 데이터베이스도 다룰 수 없습니다. 데이터베이스를 잘 다루기 위해서는 MS 가 제공하는 ActiveX Data Object 라는 것을 사용해야지 가능하지요....
하지만, FileSystemObject 나 ADO 와 같은 것은 ASP.DLL 에 같이 들어있지 않으며, 따로 제공이 되어집니다. 다행스럽게도 무료로 제공되어지지요...
ASP 페이지에서 이렇게 ASP.DLL 에 포함되어지지 않은 외부에서 제공되는 객체들을 사용하려면 어떻게 해야하느냐? 바로 CreateObject 메소드로 그 객체의 인스턴스를 만들고난 다음 사용할 수가 있게 되는 것입니다.
고로, 외부에서 제공되는 모든 객체는 그 프로그램 ID 만 알고 있다면 우리는 ASP 페이지에서.. 다음과 같은 식의 코드를 통해서 해당 객체의 인스턴스를 만들 수 있구요... 그 후, 생성된 인스턴스로 그 객체가 가진 모든 기능을 사용할 수 있게 된다는 겁니다.
Set adoCon = Server.CreateObject("ADODB.Connection")
여기서 ADODB.Connection 은 ADO의 커넥션 객체의 프로그램 아이디입니다. ^^ 이렇게 작성하면 여러분은 adoCon이라는 객체변수를 사용해서 Connection 개체가 제공하는 모든 메소드와 프로퍼티를 사용할 수가 있게되는 것입니다....
만일, 파일을 다루고 싶다? 그렇다면 다음처럼 파일시스템포브젝트의 개체 인스턴스를 CreateObject 메소드로 생성해서 사용할 수 있게 됩니다.
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
얼마나 유용한 메소드인지 조금은 감이 오시나요? ^^
아직은 잘 안 다가오겠지만.. 조금만 지둘려 보세요. 수많은 ASP 페이지에서 이를 사용하게 될 겁니다. ^^
2) URLEncode 메소드
하이퍼링크로 가끔가다 특수문자를 넘길일이 있곤 합니다... 예를 들면, % 나 + 등등 말이지요...
만약, 영화 리스트 페이지인데 하이퍼링크로 이 영화의 제목을 누르면 하이퍼링크로 이 영화의 제목을 넘겨서 DB검색을 하려고 한다. 그럴 경우 말입니다. 만약, 영화제목이 특수문자가 들어가는 예를 들면 "48+1"이라던가 하는 경우 일반적으로 하이퍼링크 되는 쪽 페이지이름이 movie.asp라면 하이퍼링크를 이렇게 넘기겠죠?
<ahref="movie.asp?title= 48+1">
하지만 이렇게 넘긴 48+1이라는 제목은 받는 쪽에서 보면 48+1이 아닌 48 1로 나옵니다.
+ 대신에 한칸이 띄어진 상태가 되는 것이지요. ?? 진짭니다. 해보세요.... -_-;
왜 이런 현상이 발생할까요? 호기심 천국에 물어볼까요? -_-;
제가 알려드리겠습니다. 이 이유는 + 라는 특수문자는 한칸띄는 의미로 인식되어지기 때문입니다. 만약 + 를 찍고 싶다면 %2b를 사용하셔야 합니다. 2b가 나타내는 것이 + 이니까요...
%를 같이 쓰셔야 합니다. 그래야 2b가 문자 2b인지 특수문자 코드인지를 구분하니까요.
% 와 안시코드... 다시 정리하면 이렇습니다.
list.asp에서 <ahref="movie.asp?name=movie&title=48%2b">영화</a>
로 보낸다면
movie.asp에서 <%=Request.QueryString("name")%>는 movie 라고 제대로 나오고,
<%= Request.QueryString("title")%>는48+1이라고찍혀 나오게 되지요..하하..

하이퍼링크위에다가 마우스를 올려놓으면 상태바에 위의 그림처럼 정보가 나타나는데 우리는 분명 title부분을 48%2b1이라고 썼는데 상태바에는 48+1로 우리가 원하던 대로 정보가 넘어감을 알수 있지요?
일반적으로 이런 것들(+를 쓰려면 2b, 공백은 + )을 외우실 필요는 없습니다. 현명하신 분이라면 아무곳이나 유명한 검색엔진에서 우리가 알고픈 특수문자를 검색하시면 검색엔진은 친절하게도 보여주지요? 상태바나 아니면 위의 콤보박스에 말이예요.. 그것이 넘어갈때 어떻게 넘어가는지? 그걸 가져다가 우리도 쓰면 되겠지요? (아니면 해당 문자를 별도의 도구를 이용해서 Encode 해서 알아낼 수도 있습니다)
하지만, ASP 에서는 그러한 특수코드들을 걱정할 필요가 없습니다. 바로 Server.URLEncode라는 메소드가 위에 처럼 복잡하게 할 필요없이 빈 공백이든, + 든, 뭐든 잘 넘겨주거든요. 사용방법은 아래와 같아요...
<% string = "48 + 1" %>
<a href="movie.asp?name=movie&title=<%=Server.URLEncode(str)%>">
바로 URLEncode 는 이럴때 쓰는것이랍니다.. ^^