본문 바로가기
JSP

JSP 스코프에 대하여

by chief_sac 2021. 6. 29.
반응형

스코프scope

스코프(Scope, 영역)는 영역이란 의미로 jsp 페이지에서 사용되는 객체들은 jsp 내장 객체이든 페이지 내에서 만들어졌든 간에 모두 정해진 영역 안에서만 사용이 가능하다.

웹 애플리케이션에서 스코프(영역)는 총 4개가 존재하며 page, request, session, application 영역들이 있다.

scop: 서블릿이나 JSP의 인스턴스의 관리 권한을 컨테이너가 가짐.
전역 변수를 통한 데이터 공유가 불가능.
웹 애플리케이션 내에서 데이터를 공유할 목적으로 운영되는 저장공간.

영역(scope-Map)을 통해 공유되는 데이터 : 속성(attribute-Entry)
각 영역에 대한 참조를 소유한 기본 객체와 동일한 사용범위(생명주기)를 가짐
1. page scope(pageContext) : 하나의 페이지로 사용 범위가 제한
2. reuest(HttpServletRequest) : 하나의 요청이 살아있는 한 사용범위가 유지됨.
3. session(HttpSession) : 한 세션동안 가능한 영역
4. application(ServletContext) : 어플리케이션과 생병주기가 동일

1. page 영역


page 영역은 한 번의 클라이언트 요청에 대해서 하나의 jsp 페이지를 범위로 갖는다. 웹 브라우저의 요청이 들어오면 jsp 페이지를 실행하는데, 이때 jsp 페이지를 실행하는 범위가 하나의 page 영역이 된다.

Page는 따로 내장된 객체가 없기 때문에 pageContext 객체를 이용하며 하나의 page 안에서 입력과 출력이 모두 이뤄지며 페이지 이동을 하기엔 Page의 영역이 다른 Page에 닿지 않기 때문에 다른 페이지에서 pageContext 객체를 사용할 수 없다.

2. request 영역


request 영역은 한 번의 웹 브라우저 요청과 관련된다. 웹 브라우저의 주소에 url을 입력하거나 링크를 클릭해서 페이지를 이동할 때, 웹 브라우저가 웹 서버에 전송하는 요청이 하나의 request 영역이 된다. 웹 브라우저가 요청을 보낼 때마다 새로운 request 영역이 생성된다. page 영역은 오직 하나의 jsp 페이지만을 포함하는데 반해, request 영역은 하나의 요청을 처리하는 데 사용되는 모든 jsp 페이지를 포함한다는 차이점이 있다.

3 . session영역


: 한 세션에 대한 정보를 가진 객체.
세션이란?

통로 : 클라이언트와 서버 사이의 유일한 연결 통로 (DataBase)
기간(시간) : 하나의 클라이언트가 하나의 에이전트를 이용해서 서버사이드 어플을 사용하기 시작한 순간(최초의 요청)부터 사용 종료 이벤트가 발생할 때까지의 기간
session lifecycle

생성 : 최초의 요청임이 식별되는 요청이 발생했을 때.
세션 하나에 식별자로 ID가 부여됨.
<%= new Date(session.getCreationTime())%>
<%= session.getId() %>
<%= new Date(session.getLastAccessedTime())%>
<%= session.getMaxInactiveInterval() %>

종료

1) 명시적인 로그아웃
2) 브라우저 종료
3) 쿠키 삭제
4) timeout 이내에 새로운 요청이 발생하지 않을 때.

쿠키의 트래킹 모드(tracking mode)

1) Cookie : JSESSIONID 이름의 쿠키를 통해 세션 아이디가 재전송되는 구조.
2) URL : jsessionid라는 이름의 세션 파라미터를 요청 라인을 통해 재전송하는 구조.
세션 파라미터를 통해 세션 유지
3) SSL : Secure Socket Layer를 통해 암호화된 식별자가 재전송되는 구조.:한 세션에 대한 정보를 가진 객체

반응형

'JSP' 카테고리의 다른 글

표준태그라이브러리(JSTL)  (0) 2021.07.06
POS 무료 템플릿 (자체 제작)  (0) 2021.07.02
그림으로 설명하는 MVC패턴 5 layer architecture  (0) 2021.06.30
JSP의 표현언어 EL태그  (0) 2021.05.29
JSP에서 프로토콜이란  (0) 2021.04.17