: Application, Session, Request, Page 총 4가지 scope가 존재한다.

Session scope
: 클라이언트(웹 브라우저)별로 객체를 만들어 변수를 관리한다. (클라이언트별로 다른) 상태정보를 유지하기 위해 사용한다.
HttpSession 인터페이스 구현객체를 사용한다.
서블릿은 HttpServletRequest의 getSession() 메소드를 이용해 session 객체를 얻는다.
JSP는 session 내장 변수를 사용한다.
응답을 내보내거나 다시 받아도 session 객체는 계속 유지된다.
ex)
session.setAttribute()
session.getAttribute()
Request scope
: http요청을 was가 받아서 변수값을 유지하며 웹 브라우저에게 응답할 때 사라진다.
서블릿은 service(), doget(), dopost() 등 메소드의 인자로 들어온 객체의 reference 변수를 사용한다. HttpServletRequest 객체를 사용한다.
JSP는 request 내장 변수를 사용한다.
forward시에도 값을 유지하며 request 객체는 요청이 끝날 때까지, 응답을 내보낼 때까지 지속된다,.

ex)
request.setAttribute()
request.getAttribute()
Page scope
: 클라이언트가 요청을 보내고 jsp/servlet이 요청을 받는다. 해당 요청을 받은 JSP 페이지에는 pageContext(내장객체)가 생성된다.
해당 페이지가 이용될 때까지만 유지되고 사용할 수 있다(like 지역변수). 따라서 forward 시 pageContext는 메모리에서 없어지고 이동된 곳에 다시 pageContext가 생긴다.
ex)
pageContext.setAttribute()
pageContext.getAttribute()
Application scope
: 서버 내에 여러 application이 존재할 수 있고, 하나의 application은 application scope이라는 단 하나의 객체를 갖는다.
어떤 클라이언트가 해당 어플리케이션에 접근하더라도 동일한 application 객체를 사용한다. 따라서 모든 클라이언트가 공통으로 사용하는 값을 저장한다.
ServletContext 인터페이스 구현객체를 사용한다.
jsp는 application 내장 객체를 사용한다.
서블릿은 getServletContext()메소드로 application객체를 사용한다.
웹 어플리케이션이 종료될 때까지 사용할 수 있다.

ex)
application.setAttribute()
application.getAttribute()
'JSP, SERVLET' 카테고리의 다른 글
쿠키, 세션 (0) | 2023.02.28 |
---|---|
JSP (0) | 2023.01.12 |
SERVLET (0) | 2023.01.11 |
EL JSTL list 값 가져오기 (0) | 2022.12.30 |
<form>태그 multipart/form-data 인코딩 방식 (0) | 2022.11.01 |