Scope

 

저장 기능 + Life Cycle
Scope 종류 4가지

 

 Scope

 

  1. Context/Application Scope - javax.servlet.ServletContextContext/Application scope begins when a webapp is started and ends when it is shutdown or reloaded. Parameters/attributes within the application scope will be available to all requests and sessions. The Context/Application object is available in a JSP page as an implicit object called application.
    In a servlet, you can the object by calling getServletContext(). or by explicitly calling getServletConfig().getServletContext().
     
  2. Request Scope - javax.servlet.http.HttpServletRequestRequest scope begins when an HTTP request is received by a servlet and end when the servlet has delivered the HTTP response. With respect to the servlet life cycle, the request scope begins on entry to a servlet’s service() method and ends on the exit from that method. Request object is available in a JSP page as an implicit object called request.
    A request object attribute can be set in a servlet and passed to a JSP within the same request.
  3. Session Scope -javax.servlet.http.HttpSessionA session scope starts when a client (e.g. browser window) establishes connection with a webapp and continues till the point where the client, again read browser window, closes. Hence, session scope may span across multiple requests from the same client. In a servlet, you can get Session object by calling request.getSession() and in a JSP session.
     
  4. JSP page Scope - javax.servlet.jsp.PageContextThe page scope restricts the scpoe and lifetime of attributes to the same page where it was created. It is available in a JSP page as an implicit object called pageScope .
     
1. 컨텍스트/애플리케이션 범위 - javax.servlet.ServletContext
컨텍스트/애플리케이션 범위는 웹앱이 시작될 때 시작되고 종료되거나 다시 로드될 때 끝난다. 
애플리케이션 범위 내의 매개변수/속성은 모든 요청 및 세션에서 사용할 수 있다. 
컨텍스트/응용 프로그램 개체는 JSP 페이지에서 application 이라는 암시적 개체로 사용할 수 있다 . 
서블릿에서 getServletContext()를 호출하여 객체를 만들 수 있다 . 
또는 명시적으로 getServletConfig().getServletContext() 를 호출한다. 

2. 요청 범위 - javax.servlet.http.HttpServletRequest
요청 범위는 서블릿이 HTTP 요청을 수신할 때 시작되고 서블릿이 HTTP 응답을 전달했을 때 끝난다.
서블릿 수명 주기와 관련하여 요청 범위는 서블릿의 service() 메서드에 들어갈 때 시작하여 해당 메서드에서 나갈 때 끝난다. 요청 객체는 JSP 페이지에서 요청 이라는 암시적 객체로 사용할 수 있다 .
요청 객체 속성은 서블릿에서 설정되고 동일한 요청 내에서 JSP로 전달될 수 있다.

3. 세션 범위 -javax.servlet.http.HttpSession
세션 범위는 클라이언트(예: 브라우저 창)가 웹앱과 연결을 설정할 때 시작되어 클라이언트가 다시 브라우저 창을 읽는 지점까지 계속된다. 따라서 세션 범위는 동일한 클라이언트의 여러 요청에 걸쳐 있을 수 있다. 서블릿에서 request.getSession() 을 호출 하고 JSP 세션 에서 Session 객체를 가져올 수 있다 .

4. JSP 페이지 범위 - javax.servlet.jsp.PageContext
페이지 범위는 속성의 scpo 및 수명을 생성된 동일한 페이지로 제한한다.
JSP 페이지에서 pageScope 라는 암시적 객체로 사용할 수 있다 .

① Application Scope : ServletContext → getServletContext( );

② Session Scope : HttpSession → requestgetSession( );

③ Request Scope : HttpServletRequest → doGet(request,  );

④ Page Scope : (x) 자주 사용 안함 

 

 Scope Life Cycle

 

 

1) Servlet Context 생명주기는 web application과 동일

2) Http Session 생명주기는 Web Browser와 동일

3) HttpServletRequest 생명주기는 요청 후 응답까지

 

 

 출처

 

* Servlet 범위 : http://www.umsl.edu/~siegelj/CS4010/Servlets/scope.html

* Servlet Life Cycle : https://velog.io/@woo00oo/%EC%84%9C%EB%B8%94%EB%A6%BF

 

+ 강의 교재

+ Recent posts