티스토리 뷰
ServletScope
서블릿에서 변수를 지정하고 객체에 담아 포워드 하려면
객체가 어디까지 유지되는지를 반드시 알아야 마음대로 변수를 가지고 놀 수 있을 것 이다...
서블릿 객체의 각 범위들을 공부해보자!
Servlet Scope
서블릿의 스코프는 대략 이런 식으로 되어있다.
JSP에서만 움직이는 Page Scope에서부터 애플리케이션 전체를 아우르는 Application Scope까지 하나씩 알아보자.
Page Scope
JSP 내에서 <% %>로 선언되는 것은 해당 JSP 안에서만 사용 할 수 있는데 이런 개념이 Page Scope
이다.
그래서 JSP의 지역변수처럼 활용이 가능하다.
클라이언트(브라우저)의 요청이 있을경우
PageContext내장객체의 변수는 JSP 안에서만 머물게 된다.
그러므로 포워드 될 경우 변수는 사라지게된다.
Request Scope
서블릿 컨테이너에서 만들어지는 HttpServletRequest
객체와 HttpServletResponse
객체에 담기는 변수는
하나의 요청과 응답이 끝날 때 까지 머물게 되는데 이것을Request Scope
라고 한다.
하나의 요청과 응답에 머무르기때문에 컨테이너 내에서 포워딩되어도 변수는 그대로 유지된다.
Session Scope
하나의 브라우저 내에서 공유되는 Scope이다.
브라우저의 TAB에서 정보가 유지되는 것은 바로 이 객체의 변수가 유지되기 때문!
쇼핑몰의 장바구니를 생각하면 이해가 빨랐다.
Application Scope
하나의 애플리케이션 내에서 공유되는 Scope이다.
하나의 애플리케이션 내의 변수를 여러 클라이언트와 공유 할 수 있다.
잘 변하지 않고 모든 이들이 공통적으로 공유해야하는 것들은 이 Application Scope
를 이용해야 한다.
참고 사이트:
부스트코스:SCOPE란?
'Backend' 카테고리의 다른 글
Nginx란 무엇일까? (0) | 2022.01.10 |
---|---|
Gradle 이란? (0) | 2021.08.12 |
[JAVA] 서블릿 초기화 파라미터 (ServletConfig & ServletContext) (0) | 2021.08.12 |
[JAVA] 서블릿 포워드 (Forward) (0) | 2021.08.12 |
[JAVA] Servlet의 생명주기 (Life Cycle) (0) | 2021.08.12 |