Scope : jsp 내장 기본 객체의 영역

- 객체의 유효기간이라고도 불리며,객체를 누구와 공유할 것인가를 나타냄

 

 

1. page 영역

- 한 번의 웹 브라우저(클라이언트)의요청에 대해 하나의 jsp페이지가 호출됨

- 웹 브라우저의 요청이 들어오면 이 때 한 개의 페이지만 대응 됨

- pageContext 기본 객체 사용

- jsp 파일에 <% %> 안에 변수 사용하면 이 변수는 해당 jsp 파일 내에서만 유효 

   -> page 스코프에 의해 정의된 객체기때문

- ex) jsp 내에서만 존재하기 때문에 servlet에서 만들 수 없음

- ex) jsp : <% pageContext.setAttribute("num1", 10); %> 

              ${pageScope.num1}

 

2. request 영역

- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응됨

- 요청을 받아서 응답하기까지 객체가 유효한 영역

객체를 하나 또는 두 개의 페이지 내에서 공유할 수 있음

- include 액션 태그, forward 액션 태그를 사용하면 request 기본 객체를 공유하게 되어서 같은 request 영역이 됨

- 페이지 모듈화에 사용됨

- servlet에서는 request.setAttribue("이름","객체"); 로 전달

  jsp에서는 Object obj = request.getAttribute("이름"); 으로 받음

  이때 사용한 request 객체가 request 영역임

- ex) servlet : request.setAttribute("num2", 20);

- ex) jsp : ${ requestScope.num2 } 

 

3. session 영역

- 하나의 브라우저 당 1개의 session 객체가 생성됨

- 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션영역이라 함

- 세션 종료되면 객체 반환

- request.getSession() 메소드를 호출하여 세션 영역의 객체를 얻을 수 있음

ex) servlet : request.getSession().setAttribute("num3"30);

- ex) jsp : ${ sessionScope.num3 }

 

4.application 영역

- 하나의 애플리케이션 당 1개의 application 객체가 생성됨

- 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션영역이라 함

애플리케이션 종료되면 객체 반한 

- request.getServletContext() 메소드를 호출하여, 애플리케이션 영역의 객체를 얻을 수 있음

ex) servlet :request.getServletContext().setAttribute("num4", 40);

ex) servlet : ${ applicationScope.num4 }

 

 

scope 범위를 보면 page < request < session < application 순

다른 영역에 같은 이름을 갖는 애트리뷰트가 있다면 

스코프 범위에 따라, 애트리뷰트 명은 좁은 범위의 영역부터 큰 범위로 탐색됨. -> 탐색되면 더 큰 범위로 탐색 진행 하지 않음

 

 

 

 

사용 예제 - 하단에 사이트 보고 하기!

 

*<%= i %> : jsp에서의 값 표기법, i는 변수

 ${ i } : el에서의 값 표기법, i는 이름

 

ex) <%= request.getParameter("a") + 100  %>    =      ${ param.a + 100 }

 

 

 

 

 

참고 사이트 : https://victorydntmd.tistory.com/155

'Servlet & JSP' 카테고리의 다른 글

액션(ACTION)  (0) 2019.06.21
JSP 예제_errorPage, isErrorPage  (0) 2019.06.20
HTTP 응답 상태  (0) 2019.06.20
JSP 예제_includeAction  (0) 2019.06.20
JSP 예제_include  (0) 2019.06.20

+ Recent posts