본문으로 바로가기

[ASP.NET] 12. 리다이렉션

category Program/ASP.NET 2017. 3. 7. 12:37

대부분의 사용자는 다른 작업을 수행하거나 하나의 작업을 마무리하기 위해 다른 페이지로 이동하게 된다. 이처럼 다른 사용자를 다른 페이지로 이동시키는 것을 '리다이렉션'이라고 한다.


사용자를 다른 페이지로 이동시키기 위한 여러 가지 방법이 있다.


1. <a>태그를 이용하는 방법


<a href="differentPage.aspx">다른 페이지로 이동</a>


2.코드 내에서 리다이렉션하는 방법.

사용자를 다른 곳으로 보내기 전에 해야 하는 작업이 있거나 어디로 이동시켜야 할 것인지를 결정하는 코드를 작성할 때 유용하다.


Response 객체의 Redirect 메서드를 이용하여 코드 내에서 다른 페이지로 이동시키는 방법

Response.Redirect("differentPage.aspx");


Redirect 메서드를 사용하면, ASP.NET은 바로 페이지의 수행을 멈추고 사용자의 웹 브라우저에게 리다이렉트 메시지를 보낸다. Redirect 메서드 호출 이후에 있는 코드는 실행되지 않는다.


3.ASP.NET에서는 제공하는 또 다른 방법을 Server 객체의 Transfer 메서드를 이용하는 방법


Server.Transfer("differentPage.aspx");


Tranfer 메서드는 웹 브라우저에 리다이렉트 메시지를 보내지 않고 원래 요청한 페이지를 통해 새로운 페이지를 실행시킨다. 웹 브라우저가 같은 URL을 보여주기 때문에 사용자는 다른 페이지로 이동되어 어떤 작업이 이루어졌는지를 알 수 없다. Transfer 메서드는 동일 웹 응용 프로그램 내에 있는 다른 ASP.NET 페이지일 때만 이동하여 수행한다.


Server객체

Server 객체는 클래스 HttpServerUtility 의 인스턴스로, 웹 응용 프로그램 개발에 필요한 다양한 유틸리티 기능을 모아 놓은 객체다. 


멤버 

설명 

ScriptTimeout 

요청에 대한 제한 시간 값(초) 설정 

CreateObject() 

서버 컨트롤 개체 생성 

Execute() 

요청된 페이지의 실행을 중단하고 새로운 웹 폼을 수행, 새 웹 폼의 수행이 끝나면 다시 Execute 문 다음부터 계속 수행 

HtmlEncode() 

HTML 문서 형식으로 인코딩 

UrlEncode()  

URL 형식으로 인코딩 

Tansfer() 

Execute문과 같은 기능을 수행하지만 새로운 웹 폼이 종료되면 실행 종료 


HTML 인코딩

HTML에는 특별한 의미를 갖는 문자들이 있다.



X < Y and Y > Z



<Y> 태그로 인식하기 때문에 페이지는 의도와 다르게 다음과 같이 나타낸다.


XZ


이 문제를 해결 하기 위해 Server객체의 HtmlEncode 메서드를 사용하면 된다.


Response.Write(Server.HtmlEncode("x<y and y>z"));