Hello, Stranger

[JSP] JSP 의 영역(scope) 본문

기타

[JSP] JSP 의 영역(scope)

xunxou 2018. 9. 14. 23:12

금요일이다.

공부하기 싫은 금요일..

 

오늘은 jsp의 내장객체 영역에 대해서 공부했다.

이전에 한번 공부한적 있지만 다시 정리한다.



1. JSP 내장객체의 영역

내장 객체의 영역: 객체의 유효기간이라고 보면 이해가 쉽다. 

영역이란 데이터를 공유할 수 있는 범위를 말한다.

영역은 page, request, session, application 4개가 있다.


page영역

page영역은 한번의 클라이언트의 요청에 하나의 JSP페이지를 범위로 갖는다.

브라우저의 요청이 들어오면 JSP페이지를 실행하게 되는데 이때 실행되는 JSP가 하나의 page 영역이 된다.

요청을 처리하는 JSP페이지는 

요청에 대해 새로운 page 영역을 갖게되고, 

그에 해당하는 pageContext라는 객체를 할당받는다.(pageContext 객체가 메모리에 로딩된다는 의미)

pageContext객체에 정보를 저장하면 해당 페이지 내에서만 사용할 수 있다.

page 영역의 범위는 해당 jsp페이지 내부.



request 영역

request영역은 브라우저에서 오는 한번의 요청과 관련이 있다.

브라우저가 웹에 전송하는 요청이 하나의 request 영역이 된다.(브라우저의 주소창에 URL을 입력하거나 페이지 링크를 클릭할때 요청이 발생)

사용자가 페이지를 요청하면 요청한 페이지와 요청받은 페이지 사이 request 내장객체에 정보를 저장할 수 있다.

브라우저가 결과를 받으면 그 요청과 관련된 request 내장객체는 사라진다.

브라우저가 요청을 할떄마다 새로운 request 내장객체가 생성되고, 매번 새로은 request 영역이 생성된다.

request 객체는 이전 페이지에서 입력된 값을 getParameter() 메소드로 가져올 수 있다.

getParameter() 외에 getAttribute()도 사용이 가능하다.

setAttribute()메소드로 파라미터가 아닌 원하는 정보를 저장하고, 다음 페이지에서 getAttribute() 메소드로 값을 가져올 수 있다.

request영역의 범위는 요청(request)부터 응답(response)까지. (요청이 들어올때 생성되서 응답을 받으면 사라진다.)



session영역 (언제나 헷갈리는 세션..)

session영역은 하나의 브라우저와 관련된 영역이다. 이 영역은 세션객체에 의해서 관리된다.

session은 웹 브라우저를 닫기 전까지 페이지를 이동하더라도 사용자의 정보를 잃지 않고 서버에 보관할 수 있도록 하는 객체이다.(서로 다른 페이지여도 객체를 공유할 수 있다.)

1개의 브라우저 내에 1개의 session만 생성이 가능하다.

사용예시는 로그인을 예로 들 수 있다.

로그인과정을 거쳐 현재 페이지를 사용할 수 있는 권한을 얻으면 

브라우저를 닫기전까지는 그 권한에 대한 상태가 유지되도록 한다.

이런 처리는 웹 서버에 제공되는 세션객체가 가능하게 한다.

session영역은 세션이 종료되는 순간에 반환된다.(웹 브라우저를 종료하는 경우, 코드로 세션을 파기하는 경우 등등)



application영역

application영역은 하나의 웹 어플리케이션과 관련된 전체 영역을 포함한다.

웹 어플리케이션이 실행되는 동안 유지되며, 

한 웹 어플리케이션에 속한 모든 JSP 페이지는 하나의 application 내장객체를 공유한다.

웹 어플리케이션이 종료되는 순간에 반환된다.



[출처] - JSP & Servlet : Eclipse & Oracle (로드북 출판사 / 성윤정 지음)