객체 저장소(객채 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가 같은 이름일 때 ${같은이름}을 부르면 범위가 더 적은 것이 우선순위로 하여 나온다.

${키}   

# EL 은 page, request, session, application 의 순서대로 찾아온다


                         


+ Recent posts