티스토리 뷰
저자:Jeffrey Humpherys| 날짜: 2001년 09월 21일 | ![]() |

ASP에서 숫자, 알파벳 문자가 아닌 것(0~9, a~z이 아닌 문자)을 아스키 헥사 코드로 변환시켜주는 메쏘드가 있다. 그것은 바로 Server.UrlEncode이다. 이 메쏘드는 해당 문자를 16진수 아스키 코드로 변환시킨 후 그 앞에 %를 붙인다(빈 문자열은 + 기호로 변환된다). 예를 들어,
strURL = "http://korea.interent.com/default.asp?id=123&usr=daniel" |
이라고 되어 있는 문자열을 Server.UrlEncode(strURL) 메쏘드를 통해 다음과 같이 변경시킬 수 있다:
http%3A%2F%2Fkorea%2E4internet%2Ecom%2Fdefault%2Easp%3Fid%3D123%26usr%3Ddaniel |
아마도 이 메쏘드를 어떤 경우에 사용할지 궁금한 사람들이 있을 것이다. 그렇다면 다음과 같은 경우를 살펴 보자. 만일 어떤 URL에서 QueryString으로 원하는 값을 받으려고 할 때 다음과 같이 어떤 주소 값을 받아야 할 경우가 있다:
<a href="http://www.myserver.com/SomePage.asp?URL=http://korea.internet.com/default.asp?id=123&usr=daniel"> |
위의 코드는 querystring으로?URL=http://korea.internet.com/default.asp?id=123&usr=daniel
부분을 http://www.myserver.com/SomePage.asp에 넘긴 경우이다. 위와 같은 경우 ? 표시가 두 군데(하나는 SomePage.asp다음에, 또 하나는 default.asp 다음에) 있기 때문에 querystring을 캡쳐해오는데 어려움을 겪을 수 있다. 또한 & 표시를 기준으로 "변수이름/값"이 하나의 쌍으로 이루어진 querystring에서 위와 같은 경우 URL=http://korea.internet.com/default.asp?id=123과 user=daniel이란 두 개의 변수이름/값 쌍이 존재하는 것으로 IIS는 생각할 수가 있다. 하지만 그 URL 주소를 생성한 사람은 URL이란 변수에 http://korea.internet.com/default.asp?id=123&use=daniel이란 값이 들어 있는 하나의 변수이름/값 쌍을 염두에 두었을 것이다. 조금 장황하게 설명하긴 했지만, 이런 문제를 해결하기 위해 Server.UrlEncode를 사용할 수가 있다.
이런 문제가 가장 빈번히 생길 수 있는 경우는, 다음과 같은 경우이다.
회원인증을 거쳐야지만 어떤 페이지를 볼 수 있도록 한 사이트에서, 로그인을 거치지 않은 사용자가 해당 페이지에 접근하려고 하면 먼저 로그인 페이지로 유도한 후 로그인을 했을 경우 원래 접근하려고 했던 페이지로 이동시켜주는 경우를 생각해 보자. 이럴 경우 로그인 페이지인 login.asp에 원래 접근하고자 했던 페이지가 있는 URL 주소를 querystring으로 넘겨준다. 이 때 URL 주소에도 역시 querystring이 있을 경우 이 URL 주소를 Server.UrlEncode로 변경시켜주도록 한다.
이제 위에서 예를 든 경우를 어떻게 구현하는지 알아 보자.
strURL = "http://korea.interent.com/default.asp?id=123&usr=daniel"
|
위와 같은 경우 Response.redirect에는 "login.asp?backlink=http%3A%2F%2Fkorea%2E4internet%2Ecom%2Fdefault%2Easp%3Fid%3D123%26usr%3Ddaniel이란 값이 넘어가게 된다.
그렇다면 login.asp에서는 인코딩 된 URL을 어떻게 받을 수 있을까? login.asp에서는 특별히 해줄 것이 없다. 원래 하던대로 다음과 같이 Request.Querystring만 호출해주면 된다.
|
지금까지 살펴본 Server.UrlEncode를 직접 테스트 해보고 싶다면 아래 링크를 클릭해 보기 바란다:
Server.UrlEncode 테스트
<FORM id=form1 name=form1 method=post>원하는 URL주소를 입력해 보세요:<INPUT name=txtEncode>
<INPUT id=submit1 type=submit value="Server.UrlEncode 결과 보기" name=submit1> </FORM>
- Total
- Today
- Yesterday
- 닷넷 엑셀
- 아이폰 보조배터리
- 러브트리프로젝트
- 안녕 바다
- 닷넷 파일형식
- KL2200
- 나를 기억하고 있는 너에게
- 릴리스다이어리
- God of War III
- 아이튠즈 없이 mp3가져오기
- 아이폰 셀카
- 보이스티
- KL-2200
- Lily's Diary
- 윈터드림
- hot 6
- 모토스톰2
- GTO SHONAN 14DAYS
- 켄우드 정수기
- 삼성 외장하드
- IT·컴퓨터
- 릴리스 다이어리 - 설레어
- Roibosh Vanilla
- 로네펠트
- georgia max
- 아이팟 보조배터리
- 아이폰 카메라어플
- 보이스차
- Crows Zero
- .NET Excel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |