[ASP 04.03] 08. Server.Transfer / Server.Execute / Respons.Redirect 의 차이점

2011. 4. 3. 21:59Web/ASP

 생각난 김에 정리 해야겠다는 마임이 들어 간만에 asp에 대한걸 정리하넹...
언제 또 필요할지 모르는건 이번주에 정리해서 올려놔야지..!!

ASP.NET에서 페이지를 이동하려는 경우 총 3가지의 메서드가 있으며 특징이 있습니다.

   Sever.Execute  Server.Transfer  Response.Redirect
사용방법  Server.Execute("파일명.asp",개체명)  Server.Transfer("파일.asp")  Response.Redirect("파일명.asp",false)
 특징  특정 페이지를 함수처럼 실행시키고 그 결과 값을 받기 위해 사용할수 있습니다.  서버에서만 페이지를 이동하고 결과는 클라이언트로 보내기 때문에 클라이언트 브라우져의 url입력창은 변화가 없다
그렇기에 get방식이 불가능하므로 post방식을 사용해야한다.
 서버에서 http헤더를 클라이언트로 보내서 클라이언트가 지정된 주소를 다시 찾게 합니다. 
 
단 Transfer와 달리 접속 후 다시 한번 서버로 접속이 이루어지게 된다.
url 이 바뀌지 않기 때문에 Get은 사용할 수 잇다.
 제어권 넘어가서 다시 원래 페이지로 제어권이 넘어온다.   제어권은 넘기고 실행이 끝나면 원래 페이지 제어권이 넘어오지 않고 끝나버린다  
(제어권이 넘어온다는 것은 원래 페이지의 Server.Execute 다음 코드가 계속 실행 된다는 이야기 입니다.)


** 만약 Response.Redirect 문이 try~catch 문 내부에 있을때 URL 다음에 2번째 인수를 설정하지 않거나 true로 설정 할 경우에 '스레드가 중단되었습니다.'라는 예외가 catch 됩니다.

두번째 인수는 bool형으로 다음 코드를 계속 실행 할 것인가의 여부를 설정하는 인수 입니다.
Response.Redirect 이후에 실행 할 코드가 더이상 없다면 두번째 인수를 false로 설정 해서 Exception이 발생하지 않도록 할 수 있습니다.