기록/BACKEND

[WEB] 요청과 응답의 Scope

5월._. 2022. 4. 4.
728x90

ApplicationScope (또는 ContextScope)

  • javax.servlet.ServletContext 인터페이스
  • 웹 어플리케이션이 시작할 때부터 끝날때(종료, 변경)까지 한 개의 객체로 유지된다. 
  • 모든 서블릿과 jsp에서 사용가능하다. 
    • jsp : application 객체로 사용 가능
    • servlet : getServletContext() 또는 getServletConfig().getServletContext()

 

SessionScope

  • javax.servlet.http.HttpSession 인터페이스
  • client(e.g. 브라우저 윈도우)가 웹 어플리케이션과 연결을 시작할 때부터 브라우저가 닫힐때까지 유지된다. 타임아웃 시간이 설정되면 닫히지 않아도 시간이 지나면 자동으로 삭제된다.
  • 한 웹사이트에 로그인 한 뒤 새로운 탭으로 동일 사이트에 들어가면 다시 로그인을 하지 않아도 되는 것은 session scope이 유지되고 있기 때문이다.
  • 세션이 유지되는 중이라면 여러 요청에서 사용가능하다. 
    • jsp : session 객체로 사용 가능
    • servlet : request.getSession()으로 사용 가능. (인자값 true : 없으면 새 세션 생성, false : 없으면 null 반환)

 

RequestScope

  • javax.servlet.http.HttpServletRequest 인터페이스
  • 요청이 서블릿에 도달했을 때부터 서블릿이 끝나고 응답할 때까지 유지된다.
  • 서블릿의 service() 메소드에 들어갈 때부터 그 메소드에서 나갈때까지라고 생각하면 된다.
  • 하나의 요청을 처리하는 모든 서블릿/jsp에서 사용할 수 있다.
    • jsp : request 객체로 사용 가능
    • servlet : request 객체에 attribute를 set, get할 수 있음

 

PageScope (JSP Page Scope)

  • javax.servlet.jsp 추상클래스
  • 현재 페이지 내에서만 사용 가능하다.
    • jsp : pageScope 객체로 사용 가능

 

 

 

참고 사이트 : https://www.javajee.com/application-request-session-and-page-scopes-in-servlets-and-jsps

'기록 > BACKEND' 카테고리의 다른 글

[Spring] DI 주입하기 - xml  (0) 2022.04.15
[WEB] 파라미터와 어트리뷰트  (0) 2022.04.04
[WEB] Java에서 DB연결하기  (0) 2022.04.02
[WEB] Servlet  (0) 2022.03.29
[WEB] MVC Pattern  (0) 2022.03.29

댓글