목차
- 영역이란
- 영역 속성 값
JSP에서 관리되는 객체들은 영역을 가지고 각 영역에 따라 객체 정보를 공유하고 사용할 수 있게 합니다. Hello1.jsp 에서 생성한 유저 정보를 reqeust scope에 저장해두면 같은 reqeust scope에 해당하는 Hello2.jsp에서도 유저 정보를 사용할 수 있습니다.
마치 JSP 페이지 내에 있는 객체를 JSP 전역에 걸쳐 변수처럼 사용이 가능해지는군요.
이 scope (영역)에 대해서 알아보겠습니다.
영역 (scope)이란
JSP 페이지에서 존재하는 객체 (내장 객체 포함)들은 영역 (scope)속성을 가집니다.
* scope : 객체의 활동 (사용) 영역
객체가 가지는 영역 속성 값의 종류
- page
- request
- session
- application
<jsp:useBean id="user" class="com.example.vo.User" scope="session" />
같은 영역이라면 JSP 페이지들은 서로의 정보를 공유하여 객체들을 협력하여 사용할 수 있습니다.
영역 속성을 나타내는 내장객체
- pageContext
- request
- session
- application
즉, 위에서 user 객체를 session scope로 할당했으면 session 내장 객체에 저장되어 사용이 가능합니다.
영역 속성 값
scope에 해당하는 내장객체에 setAttribute()와 getAttribute()를 이용하여 key, value 형태로 저장 사용합니다.
page
- 1개의 JSP 페이지 내부를 의미
- 클라이언트에게 응답을 보내거나 포워딩이 일어나면 소멸
- page 영역에 존재하는 객체 레퍼런스는 pageContext 내장 객체에 저장
<jsp:useBean id="user" class="com.example.vo.User" scope="page" />
<%
pageContext.getAttribute("user");
%>
request
- 같은 요청을 처리하는 1개 이상의 JSP 페이지들을 의미 ( <jsp:inlude.../>, <jsp:forward.../> 이용 시)
- 요청에 대한 응답이 이루어질 때까지만 유지 (처리가 끝나면 영역 소멸)
- 영역 정보는 request 내장 객체에 저장
Hello1.jsp
<%
request.setAttribute("jsp version", 1.15f);
%>
<jsp:include page="/Hello2.jsp"/>
Hello2.jsp
<%
request.getAttribute("jsp version");
%>
session
- 같은 세션 내에서 request들을 처리하는 페이지들을 의미
- session 영역 내의 객체는 session 내장객체에 저장
../main/loginView.jsp
<%
session.setAttribute("userNo", 13112);
%>
../info/myPage.jsp
<%
session.getAttribute("userNo");
%>
application
- 1개의 웹 애플리케이션 전체 영역을 의미
- 같은 애플리케이션 내부에서 전체 페이지들 간에 공유할 정보를 담는 용도
- 웹 컨테이너 (tomcat)을 재기동하면 기존 영역을 없애고 다시 생성
- 영역 정보는 applciation 내장 객체에 저장됨
../main/loginView.jsp
<%
application.setAttribute("versionNo", 13112);
%>
../..*.jsp
<%
application.getAttribute("versionNo");
%>
'Programming > Languages (Java, etc)' 카테고리의 다른 글
[SPRING] @Transactional을 얼마나 이해했는지 보자 (0) | 2023.01.04 |
---|---|
[JSP] jsp를 모듈화할 때 액션태그를 써야하는 이유 (0) | 2022.11.13 |
[JSP] 내장객체 (0) | 2022.11.10 |
[JSP] Runtime (0) | 2022.11.02 |
static 변수에 @Value inject (0) | 2022.10.24 |
댓글