Scope
by choising
20180816
1. Scope
-
변수가 유지되는 범위.
- Page Scope : 페이지 내에서 변수가 유지.
- Request Scope : HTTP 요청을 WAS가 받아서 웹 브라우저에게 Response할 때까지 변수가 유지.
- Session Scope : 웹 브라우저 별로 변수가 관리되는 경우.
- Applicaition Scope : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지.
1) Page Scope
- 해당 JSP나 서블릿이 실행되는 동안에만 정보를 유지한다.
PageContext
추상 클래스 사용.- JSP 페이지에서 pageContext라는
내장 객체
로 사용가능.- setAttribute(), getAttribute() 메소드를 이용.
- 모든 Scope들이 각 객체별로 공통적으로 위 메소드를 사용한다.
- forward가 될 경우 해당 Page scope에 지정된 변수는 사용할 수 없다.
- 마치 지역변수처럼 사용된다는 것이 다른 scope들과의 차이점.
2) Request Scope
- HTTP요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수값을 유지하고자 할 경우 사용한다.
HttpServletRequest
객체 사용.- JSP에서는 request
내장 객체
사용. - 서블릿에서는 HttpServletRequest 객체 사용.
- JSP에서는 request
- forward시 값을 유지하고자 사용한다.
3) Session Scope
- 웹 브라우저(Client) 별로 변수를 관리하고자 할 경우 사용한다.
- 탭 간에는 세션정보가 공유된다.
HttpSession
인터페이스를 구현한 객체를 사용한다.- JSP에서는 session 내장 객체를 사용한다.
- 서블릿에서는 HttpServletRequest의 getSession()메소드를 이용하여 session객체를 얻는다.
- 장바구니 처럼 사용자별로 유지가 되어야할 정보가 있을 경우 사용.
4) Application Scope
- 웹 어플리케이션이 시작되고 종료될 때까지 변수를 사용할 수 있다.
ServletContext
인터페이스를 구현한 객체를 사용한다.- JSP에서는 application 내장 객체를 사용.
- 서블릿에서는 getServletContext()메소드를 이용하여 application객체를 이용.
- 웹 어플리케이션 하나당 하나의 application객체가 사용된다.
- 모든 클라이언트가 공통으로 사용해야할 값이 있을 경우 사용.
Subscribe via RSS