2019. 2. 27. 19:05ㆍJAVA Back-End
Scope(영역)
Servlet / JSP로 개발하다보면 많은 변수(데이터)를 다루게 됩니다.
어떤 변수는 웹 어플리케이션 전체에서 공유하고 싶고,
어떤 변수는 사용자 별로 유지하고 싶을 수 있고,
어떤 변수는 포워딩 되는 동안 유지하고 싶을 수 있습니다.
이렇게 변수를 어떤 범위 내에서 사용하냐에 따라 4가지 Scope로 나눌 수 있습니다.
* 속성(Attribute) : 공유되는 데이터
영역(Scope) : 속성을 공유할 수 있는 범위
Servlet과 JSP의 4가지 Scope
[출처] http://inheritingjava.blogspot.com/2011/04/chapter-42-scope-of-javabeans-in-jsp.html
영역 |
영역 객체 |
유효범위 | 쓰임새 |
page 영역 |
pageContext |
|
|
request 영역 |
request |
|
|
session 영역 |
session |
|
|
application 영역 |
application |
|
|
WAS에서 JSP로 여러가지의 Scope를 사용할 떄 이미 선언된 Scope 내장객체를 사용하면 됩니다.
이전에 사용하던 setAttribute() / getAttribute() 같은 게 있었죠?! 모든 내장객체에서 이 메소드들로 set하고 get할 수 있습니다 :)
JSP에서
<%
// page scope
pageContext.setAttribute("pageScope", "value");
// request scope
request.setAttribute("requestScope", "value");
// session scope
session.setAttribute("sessionScope", "value");
// application scope
application.setAttribute("applicationScope", "value");
%>
Servlet에서
page : pageContext객체를 이용합니다. 하나의 서블릿으로 제한합니다.
request : HttpServletRequest객체를 사용. 값을 저장할 떈 request.setAttribute() 값을 읽어 들일 땐 request.getAttribute()메소드 사용
session : HttpServletRequest의 getSession() 메소드를 이용해 session객체를 얻습니다. 마찬가지로 session.setAttribute(), session.getAttribute() 사용합니다.
application : ServletContext 객체를 이용합니다. 하나의 웹 애플리케이션으로 제한합니다.
[출처] http://blog.naver.com/PostView.nhn?blogId=javaking75&logNo=140181686711
[ edwith - 웹프로그래밍 부스트코스 ] 를 개인적으로 공부하고 정리한 공간입니다. 잘못된 부분은 피드백 주시면 감사하겠습니다
'JAVA Back-End' 카테고리의 다른 글
[JSP/Servlet] JSTL (JSP Standard Tag Library) (0) | 2019.03.02 |
---|---|
[JSP/Servlet] EL(Expression Language) (0) | 2019.03.01 |
[JSP] redirect 와 forward (1) | 2019.02.26 |
[JSP] JSP 내장객체 (0) | 2019.02.25 |
[JSP] JSP문법 (0) | 2019.02.25 |