서버 객체는 여러 가지 웹 서버에 관계된 작업들을 도와주는 객체이다. 사실상 다른 객체들에 비해 객체 내부에서 제공되는 여러 메소드들의 연관성이 애매해 보이기도 하지만 상당히 유용한 메소드들로 구성이 되어 있다. 이들 중 가장 대표적인 메소드가 CreateObject 메소드인데 이는 유용한 ActiveX 객체들의 인스턴스를 생성하게 하여 ASP에서 사용할 수 있도록 하는 메소드이다. 그 외에도 여러가지 메소드가 제공되는데, IIS5.0에 들어서서 새로이 제공되는 메소드로써, Transfer 와 Execute가 있다.
● 속성
- ScriptTimeout : 디폴트 값 90초를 갖는다. 서버가 페이지 실행을 중지하거나 애러를 알리기 전에 페이지의 스크립트가 실행될 수 있는 초 단위 시간을 설정한다. 이것은 스크립트의 실행을 자동으로 멈추게 하고, 메모리로부터 애러(루프에 빠지게 하거나 리소스를 사용하고 있는 동안 기다리는 것 등)를 포함하고 있는 페이지를 없앤다. 이 속성은 서버가 잘못된 페이지로 인해 부하가 걸리는 것을 방지하는데 주로 사용되지만, 페이지가 긴 실행 시간을 필요로 한다면 이 값을 증가시켜도 좋다.
<% Server.ScriptTimeout = 90 %>
● 메소드
- CreateObject("identifier") : "identifer" 객체의 인스턴스를 만들고, 이것에 대한 참조를 반환한다. 세션 레벨범위나 애플리케이션 레벨 범위의 객체들을 만들기 위해 가상 애플리케이션의 global.asa 페이지에서 사용될 수 있으나 그다지 추천되지 않는다. 서버에 부하를 줄 수 있기 때문이다.
객체의 "identifer" 이름은 ClasssID 등이나 ProgID("ADODB.Connection" 등)로 지정할 수 있다.
<% Set Conn = CreateObject("ADODB.Connection") %>
- Execute("url") : IIS5.0에서 새롭게 지원되는 메소드이다. 현재 페이지실행을 멈추고 "url" 에서 지정된 페이지를 실행. 사용자의 현재 환경(세션 상태와 현재 트랜잭션 상태)은 새 페이지로 옮겨간다. 이 페이지가 실행을 마친 뒤에 제어권이 다시 본래 페이지로 돌아오고, Execute 메소드 호출 이후 문장에서 실행이 연결된다.
- GetLastError : ASP 처리 중에 발생한 마지막 애러의 정보를 보관하는 ASPError 객체에 대한 참조를 반환한다.
- HTMLEncode("string") " : 입려값 "string"을 받아서 비 HTML 문자들(<,>,&," 등)을 동일한 HTML 앤티티 (<, >, &, " 등)로 변환하여 반환한다.
- MapPath("url") : "url"에서 지정한 파일이나 리소스의 전체 물리적 경로와 이름을 반환한다.
상대경로나 가상디렉토리의 경로를 서버의 실제 디렉토리 경로로 변환시켜주는 일을 한다. 예를 들어, 웹의 루트경로와 현재 페이지가 저장되어있는 경로를 알고자 한다면 다음과 같이 기술해 주면 된다.
현재경로는 <%= Server.MapPath(".") %> <BR>
루트경로는 <%= Server.MapPath("/") %> <BR>
IS 가상디렉토리의 경로는 <%= Server.MapPath("/is") %>
또한 웹서버에서 가상디렉토리를 만든 경우에는 다음과 같이 가상디렉토리의 이름을 슬래시(/)와 함께 기술해 주면 된다.
IS 가상디렉토리의 경로는 <%= Server.MapPath("/is") %>
- Transfer("url") : IIS5.0에서 새롭게 지원되는 메소드이다. 현재 페이지의 실행을 멈추고, "url"에서 지정된 페이지로 제어권을 넘긴다. 사용자의 현재 환경(세션 상태와 현재 트랜젝션 상태)은 새 페이지로 넘어간다. Execute 메소드와는 달리, 원래 페이지에서 실행이 계속되지 않으며 새 페이지가 실행을 완료했을 때 끝난다.
- URLEncode("string") : 입력값 "string"을 받아서 비 URL문자들(<, &, 공백문자 등)을 동일한 앤티티(\3F, \26, + 등)로 변환하여 반환한다.


