객체 저장소(객채 scope[사용범위]) = 객체를 저장소에 저장하면 어떤 범위에서 사용할 수 있느냐?
useBean에 scope가 선언안되면 default는 page이다.
#1 종류 : page범위 < request범위 < session범위 < application범위
#2 저장소 : (pageContext) (HttpServletRequest) (HttpSession) (ServletContext)
#3 저장 메소드 : -------------------------setAttribute("키", 객체) 모두 소유--------------
#4 호출 메소드 : -------------------------getAttribute("키") 모두 소유 ( ${키} )----------
#5 page 범위란? : 웹클라이언트1 >>>요청>>> a.jsp { 객체 생성 및 저장 }
웹클라이언트2 a 생성 객체 사용 불가능 && 다른 jsp에서 a생성 객체 사용 불가능
#6 request 범위란? ( 요청------->응답까지만 사용) : 웹클라이언트 >>요청>> a.jsp >>>b.jsp 까지 사용가능 즉 요청(request)내에서만 사용 가능
response에서는 사용 불가능, 마찬가지로 다른 클라이언트는 새로운 요청이므로 사용 불가능
#7 session 범위란? (동일한 클라이언트에서 공유) : 한 클라이언트 내에서 계속 사용 가능( 동일한 클라이언트가 재 요청시 객체는 남아 있다.)
session.setAttribute("키",X) /// session.getAttribute("키") or ${ 키 }
ex)로그인 정보, 장바구니
#8 application 범위란? (다른 클라이언트에서 공유) : 모든 클라이언트에서 사용 가능
서블릿 >> servletContext.setAttribute("키",X)
servletContext.getAttribute("키")
JSP >> application.setAttribute("키",X)
application .getAttribute("키")
% session과 request가 같은 이름일 때 ${같은이름}을 부르면 범위가 더 적은 것이 우선순위로 하여 나온다.
'Web Developer > JSP' 카테고리의 다른 글
클라이언트 상태(데이터) 유지 기법 (0) | 2016.05.12 |
---|---|
JSP에서 form을 id나 name으로 submit 하는 법 (0) | 2016.05.12 |
<a>태그의 이벤트 처리 (0) | 2016.05.12 |