HTMLEncode 메소드

웹 브라우저는 웹 서버로부터 전송받는 웹 페이지의 HTML 태그를 자체 스크립트 엔진을 이용해 해석하여 보여준다.
하지만 HTML 태그를 설명하는 페이지를 만들고 싶다면 태그 자체를 웹 브라우저에 표현해야 할 것이다.
태그 자체를 웹 브라우저에 그대로 보여주려면 웹브라우저가 태그가 아님을 알 수 있게 인코딩 형태로 변환시켜야한다.
예를 들면 '<' 표시는 &lt; '>' 표시는 &gt;로 변환해주어야하며 이러한 변환을 HTML 인코딩이라 한다.

<%=Server.HTMLEncode("<H2>")%> : 문자를 크게 보여 줍니다.

그러나 HTML 태그들과 달리 <%...%> 태그들은 약간 다르게 처리해야한다.

<%=Server.HTMLEncode("<%=Server.ScriptTimeout%>")%>

위와 같이 사용한다면 웹서버에서 <%...%> 태그를 먼저 해석하려고 하기 때문에 오류가 날 것이다.
이때는 '%' 와 '>' 사이에 '\'를 삽입하면 된다.

<%=Server.HTMLEncode("<%=Server.ScriptTimeout%\>")%>

URLEncode 메소드

URLEncode 메소드는 문자열로 된 정보를 입력받아 URL로 인코딩된 형태로 변환해준다.
공백 문자는 '+' 표시로 바꾸고 특정 문자들은 퍼센트 표시(%)와 함께 ANSI 코드 16진수 값으로 바꾼다.
질의 문자열(QueryString)로 보내지는 데이터 중 영문자와 숫자를 제외한 모든 문자는 URL 인코딩되어 보내지게 된다.

이러한 인코딩이 필요한 이유는 ASP가 다른 스크립트 페이지나 오래전 만들어진 CGI 프로그램과 데이터를 공유할 수 있게 하기 위해서다.

 

하지만 백분율 기호(%)같은 것은 질의 문자열 내에서 텍스트로 송신될 수 없다.
이 문자는 URL 인코딩된 문자를 표시하기 위해 사용되기 때문이다.
'100%'와 같은 문자열을 송신하려면 백분율 기호(%)를 뜻하는 ANSI 코드 '25'와 '%'를 같이 사용하여 '100%25' 형태로 보내진다.

<a href="/percent.asp?percent=<%=Server.URLEncode("100%")%>">100%</a>

 

MapPath 메소드

MapPath 메소드는 지정된 상대 경로 또는 가상 경로를 서버 상에서 해당하는 실제 경로로 변환시킨다.
예를 들어 /Upload 경로의 서버상 실제 경로를 알고 싶을 경우 다음과 같이 변환할 수 있다.

<%
     Dim upload_path
     upload_path = Server.MapPath("/Upload")
     .....
     Response.Write "업로드 경로 : "& upload_path
%>

MapPath 메소드는 반환하는 경로가 유효한지 또는 서버에 실제로 존재하는지 여부 등을 확인하지는 않는다.
경로가 슬래시(/)나 역슬래시(\)로 시작하면 가상 경로인 것처럼 경로를 반환한다.

 

MapPath 메소드에서는 도스나 유닉스와 같이 '.'과 '..' 기호도 사용할 수 있다.
마침표 하나는 현재 디렉토리, 마침표 둘은 상위 디렉토리를 나타낸다.