카테고리 없음

(JSP) 4가지 Scope

Asdpark 2022. 9. 18. 14:49
반응형

scope(객체)의 구성

Servlet과 JSP관련 공부를 하다보면 변수를 많이 다루게 된다. 이때 필요한 개념이 변수를 어떤 범위에서 시용할지 

알기위해선 Scope를 알고 있어야 합니다.

위의 그림을 보면 Servlet과 JSP에서는 Application, request, session, page의 4가지의 Scope가 있습니다.

 

Scope 란? 

프로그램에서 사용되는 변수들은 사용 가능한 범위를 가지는데 이때 변수의 범위를 Scope라고 합니다.

모든 Scope들은 값을 읽거나 저장 할때는 setAttibute(), getAttibute() 메소드를 이용합니다.

 


1. Page Scope

실제 선언이 된 JSP 페이지 내에서만 사용할 수 있는 Scope로 페이지 안에서는 지역변수 처럼 사용할 수 있습니다.

 

page Scope는 pageContext 객체에 의해서 관리가 됩니다. 다른 세가지 Scope와는 다르게 page내장 객체가 아닌

JSP파일에 내장되어 있는 PageContext 객체를 통해서 접근을 할수 있습니다. 

 

ex) pageContext이름.setAttribute()pageContext이름.getAttribute()

 

PageScope는 지역변수와 큰 차이가 없기에 많이 쓰이지는 않습니다. 하지만 지역 변수처럼 해당 JSP나 Servlet이

실행되는 동안에만 정보를 유지하고자 할 때 사용이 됩니다.

 

2. Request Scope

클라이언트로 부터 요청이 들어와서 서버가 일을 수행한 후 응답을 보낼 때 까지 사용이 가능한 Scope입니다.(1개의 요청)

forward 시 값을 유지하고 싶을때 사용하는 Scope입니다.

Servlet에 대한 http요청을 Was가 받아서 웹브라우저에게 응답 할때 까지 변수값을 유지 하고 싶을때 사용합니다.모든 요청이 들어올 때 마다 Was는 request 객체와 response 객체를 만듭니다. foward 여부와 상관없이 하나의 요청이 들어와서 나가기 전까지 유지가 됩니다.JSP에서는 request 내장 변수를 사용하고 Servlet에서는 HttpServletRequest 객체를 사용합니다.

 

3. Session Scope

Session 객체가 생성되고 소멸될 때 까지 request는 하나의 요청과 응답이 나갈 때까지만 Session scope은 session 객체가 만들어져서 사리질때 까지 유지된다. 여기서 Request scope와의 차이는 여래개의 요청이 들어와도 유지가 된다는 점입니다. 주로 클라이언트 별로 변수를 관리 하고자 할 경우 사용이 된다.  Session scope는 한 클라이언트 내의 여러개의 request들을모두 Cover 합니다. 클라이언트  탭 사이에는 Session 정보가 공유 되기에 그 안의 탭들 끼리는 같은 Session 정보를 사용할 수 있습니다.

 

4. Application Scope 

하나의  application이 생성되고 사라질때 까지 계속 유지되는 Scope입니다. application을 간단하게 말하자면 ProJect가 application이라고 볼 수있다.

application scope은 모든 클라이언트가 공통으로 사용해야 할때 사용합니다.

Servlet 인터페이스를 구현한 객체를 사용하며 JSP 에서는 application 내장 객체를 사용합니다.

 

 


참고자료: https://dotnettutorials.net/lesson/jsp-scopes/

반응형