본 글은 victolee님의 포스팅을 보고 따라 학습하며 내용을 정리한 포스팅 입니다.
객체 범위 (Scope)
객체 범위 종류
- 웹 애플리케이션에는 4개의 객체 범위가 존재합니다.
page 영역
- 한 번의 클라이언트 요청이 오면, 하나의 JSP 페이지가 응답됩니다.
- page영역은 이 때 하나의 JSP 페이지 내에서만 객체를 공유하는 영역을 의미합니다.
- JSP 파일에 <% %>안에 변수를 사용하면, 이 변수는 해당 JSP파일 내에서만 유효한데 이는 page스코프에 정의된 객체이기 때문입니다.
request 영역
- 요청을 받아서 응답하기까지 객체가 유효한 영역입니다.
- servlet에서 forward또는 include를 사용한다면, request 요청 객체가 공유되어서 request영역이 됩니다.
session 영역
- 하나의 브라우저(동일한 클라이언트) 당 1개의 session 객체가 생성됩니다.
- 같은 브라우저(동일한 클라이언트) 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션 영역이라고 합니다.
application 영역
- 하나의 application당 1개의 application 객체가 생성됩니다.
- 다른 클라이언트에서 공유, 모든 클라이언트에서 동일한 객체의 사용이 가능합니다.
page영역 | request영역 | session역역 | application영역 | |
---|---|---|---|---|
저장소 | pageContext | HttpServletRequest | HttpSession | ServletContext |
저장메소드 | setAttribute(KEY, 객체) | setAttribute(KEY, 객체) | setAttribute(KEY, 객체) | setAttribute(KEY, 객체) |
호출메서드 | getAttribute(KEY) | getAttribute(KEY) | 1. getAttribute(KEY) 2. getSession() |
1. getAttribute(KEY) 2. getServletContext() |
애트리트트 명은 좁은 범위의 영역부터 큰 범위의 영역으로 탐색을 합니다.