프로그래머/JAVA

[JSP] Scope

얼짱가면 2013. 3. 27. 08:47

[Scope 종류]

(1) Page scope : 한 페이지에서만 지역 변수로 사용할 수 있는 데이터의 한계

(2) request scope : 요청을 받은 페이지에서만 사용할 수 있는 데이터의 한계

(3) session scope : 로그인 상태에서만 사용할 수 있는 데이터의 한계

(4) application scope : 사이트에 접속한 모든 클라이언트가 사용할 수 있는 데이터의 한계

 

[getParameter와 getAttribute의 차이]

getParameter : String으로 받는다.

getAttribute : Object로 받는다. 매소드도 받을 수 있다.

 

[first.jsp]

session.setAttribute("Attribute", "sessionTell");

 - session scope에 Attribute 등록

request.setAttribute("Attribute", "requestTell");

 

[second.jsp]

request.getAttribute : <%= request.getAttribute("Attribute") %><br/>

 - request scope의 등록된 Attribute 호출

session.getAttribute : <%= session.getAttribute("Attribute") %><br/>

pageContext.findAttribute : <%= pageContext.findAttribute("Attribute") %><br/>

 - findAttribute : Page -> request -> session -> application 순으로 Attribute를 찾음

 - jsp에서 사용 가능, Servlet에서 사용 불가

[request scope Attribute 제거]<%request.removeAttribute("Attribute"); %><br/>

 - request scope의 Attribute를 제거

pageContext.findAttribute : <%= pageContext.findAttribute("Attribute") %><br/>

[session scope Attribute 제거]<%session.removeAttribute("Attribute"); %><br/>

pageContext.findAttribute : <%= pageContext.findAttribute("Attribute") %><br/>

 

[output]

request.getAttribute : requestTell
session.getAttribute : sessionTell
pageContext.findAttribute : requestTell
[request scope
Attribute 제거]

pageContext.findAttribute : sessionTell

[session scope Attribute 제거]
pageContext.findAttribute : null