본문 바로가기
Programming/Languages (Java, etc)

[JSP] 영역, Scope

by kghworks 2022. 11. 11.

목차

  • 영역이란
  • 영역 속성 값

page, reqeust scope

 

 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");
%>

 

page, reqeust scope

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");
%>

 

 

 

댓글