🍁pageContext 객체
pageContext 객체는 페이지 이동과 관련이 있다.
페이지 이동하기
<%
pageContext.forward("ex12_pagecontent_2.jsp");
%>
pageContext 객체도 response 객체처럼 페이지를 이동하는 기능을 제공한다.
pageContext 객체와 response 객체의 차이점
- http://localhost:8090/jsp/ex11_response_2.jsp
- http://localhost:8090/jsp/ex12_pagecontent_1.jsp
두 객체의 페이지 이동의 차이점은 하던 일을 계속하는지, 멈추는지에 있다.
Round-Trip
response 객체는 sendRedirect 메서드를 만나면 당장 이동하지 않고, 기억만 한다. 그리고 1번 페이지의 나머지 코드를 실행해서 1번 페이지를 끝마치고, 다시 브라우저로 돌아간다. 다음에 돌려줄 페이지를 만든 뒤에 사용자의 의지와 상관없이 다시 1번 페이지로 돌아간다. 이제 2번째 페이지의 주소를 주소창에 적는다.
한 번 끝까지 갔다가 돌아오기까지의 과정을 Round-Trip이라고 하는데, 이 경우에는 Round-Trip이 2번 발생한 것이다.
pageContext 객체의 forward 메서드를 만나면 하던 일을 all stop 하고(1번 페이지 코드 끝) 바로 2번째 페이지를 서버 쪽에서 이동을 한다. 그리고 1번 페이지와 관련된 산출물을 모두 버려버린다. 이 경우에는 Round-Trip이 1번 발생한다. 그래서 1번을 요청했다고 생각했는데 2번째 페이지를 돌려받게 되므로, 링크에는 1번 페이지가 있는 것을 볼 수 있다.