티스토리 뷰

PageContext 객체는 javax.servlet.jsp.PageContext 클래스를 상속하여 웹 컨테이너가 구현한 객체


JSP에서는

  1. 다른 내장 객체를 얻어내거나
  2. 현재 페이지의 요청과 응답의 제어권을 다른 페이지로 넘겨주는데 PageContext객체를 사용
  3. request, session, application => 내장객체의 속성을 제어

PageContext, request, session, application

=>내장 객체이다.

=>각각의 영역(Scope)과 관련된 자신의 속성(Attribute)를 가질 수 있다.

=>서로 다른 페이지라 할지라도 동일한 APP내에서 공유 가능

=>이 4가지 내장 객체 들을 영역(Scope)객체 라고도 불리운다.

리턴 타입 

메소드 명 

 설명

ServletRequest 

getRequest() 


클라이언트의 요청 정보를 담고 있는 객체를 리턴

(request 내장객체를 리턴) 


ServletResponse

getResponse() 


요청에 대한 응답 객체를 리턴

(response 내장 객체를 리턴) 


JspWriter 

getOut() 


응답 출력 스트림을 리턴

(out 내장 객체를 리턴) 


Object 

getpage() 


서블릿 인스턴스 객체를 리턴

(page 내장 객체를 리턴) 


ServletConfig 

getServletConfig() 


서블릿의 초기 설정 정보를 담고 있는 객체를 리턴

(session 내장 객체를 리턴) 


ServletContext 

getServletContext() 


 서블릿의 실행 환경 정보를 담고 있는 객체를 리턴

(application 내장 객체를 리턴)


 HttpSession

getSession() 


클라이언트의 세션 정보를 담고 있는 객체를 리턴

(session 내장 객체를 리턴)

 

 

forward(String url) 


현재 페이지의 요청과 응답에 관한 제어권을 URL로 지정된 주소로 영구적으로 넘긴다.

forward된 페이지의 요청 처리가 종료되면 응답도 종료된다.

 

 

include(String url) 


현재 페이지의 요청과 응답에 관한  제어권을 URL로 지정된 주소로 임시로 넘긴다.

include된 페이지의 처리가 끝나면 제어권은 다시 원래의 페이지로 돌아온다.

따라서 include로 지정된 페이지의 내용을 원래 페이지에 삽인하는 효과를 가진다.






위에서 알아본 내용을 바탕으로 실습을 통해서 다시 한번 알아볼게요~


1.pageContext 폴더 생성



2.jsp파일 생성



3.pageContextTest1.jsp파일



[해석]

pageContext객체는 

1.다른 내장 객체를 얻어내거나

2.현재 페이지의 요청과 응답의 제어권을 다른 페이지로 넘겨주는데 사용

한다고 위에서 정리를 하였습니다.


pageContextTest1.jsp파일은 다른 내장 객체를 얻어내는역활을 하는 문장 입니다.


즉, "다른 내장 객체를 가지고 올래!"(pageContext)

"어떻게? -> 현재 페이지(pageContextText1.jsp)의 요청과 응답에 관한 제어권을 지정된 주소(pageContextTest2.jsp)로 영구적으로 넘길거야~"


4.pageContextTest2.jsp파일



[해석]

 "다른 내장 객체를 가지고 올래!"(pageContext)

 "어떻게? -> 현재 페이지(pageContextText2.jsp)의 요청과 응답에 관한 제어권을 지정된 주소(pageContextTest3.jsp)로 임시로 넘길거야~"

 "그래서 그 주소(pageContextTest3.jsp)에 있는 내용을 현재 페이지(pageContextTest2.jsp)에 삽입 할거야"

 "그리고 삽입한 위치 아래에다가는 pageContextd의 forward 메소드로 포워딩된 페이지 입니다. 라고 문구를 적을라고"


5.pageContextTest3.jsp



[해석]

"pageContextTest2.jsp에서 나를 임시로 요청을 해버렸네?"

"그러면 나는 include 되는 pageContextTest3.jsp 페이지 입니다. 라는 문구를 삽입해야지~"

"그리고 끝날땐 pageContextTest2.jsp 파일의 내용과 구분하게 밑줄(<hr>)을 그어야 겠어!!"


6.결과



[해석]


주소가 pageContextTest1.jsp라고 합니다.


이러한 경우를 포워딩 방식 이라고 하는데요 포워딩 방식이 무엇일까요?


포워딩 방식이란?


1. 요청과 응답에 대한 제어권을 다른 페이지로 넘기더라도 브라우저에 표시되는 주소가 유지되는 방식


2. 현재 페이지의 요청과 응답의 정보에 대한 제어권만이 다른 페이지로 넘어간다.

->요청 정보와 응답 정보가 유지



포워딩 방식과 반대인 리이렉트 방식이라고 있습니다.


리다이렉트 방식이란?


1. 브라우저에 표시되는 주소가 바뀌는 방식


2.이동할 페이지로 요청과 응답 객체를 새로 생성하여 전송


3.요청 정보와 응답 정보가 유지되지X


==>sendRedirect메서드 사용 -> response객체




부족한 실력이지만 제가 스스로 공부한 것을 3번 재 정리해서 올린 게시물들 입니다.


끝까지 읽어주셔서 감사합니다.~^^




Comments