본문 바로가기

Programming/Web

[JSP] Scope Object

JSP의 내부 객체란 JSP 페이지가 사용자의 브라우저에게 요청될 때 자동으로 생성되는 객체를 말하는데, 특정한 자바 클래스 또는 인터페이스의 형태를 갖는다.


scope

웹 어플리케이션은 page, request, session, application 이라는 4개의 영역을 가지고 있으며 객체를 누구와 공유할 것인가를 나타낸다. 영역은 객체의 유효기간이라고도 한다.

page한 번의 웹브라우저(클라이언트)의 요청에 대해 하나의 JSP 페이지가 호출되며 웹브라우저의 요청이 들어오면 이때 단 한 개의 페이지만 대응 된다. 생성된 객체는 PageContext 에 저장된다. 쉽게 말해 service()를 벗어나면 소멸한다. 

request: 한 번의 웹브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응되며 웹브라우저가 한 번의 요청에 단지 한 개의 페이지만 요청될 수 있고, 같은  request 영역이면 두개의 페이지가 같은 요청을 공유 한다. include 액션 태그, forward 액션 태그를 사용 시 공유 가능. 생성된 객체는 HttpServletRequest 에 저장

session하나의 웹브라우저 당 1개의 session 객체가 생성된다. 같은 웹브라우저 내에서는 요청되는 페이지 들은 같은 객체를 공유한다. 생성된 객체는 HttpSession 에 저장된다. 동일한 클라이언트만 사용가능

application하나의 웹 어플리케이션 당 1개의 application 객체가 생성된다. 같은 웹 어플리케이션에  요청되는 페이지들은 같은 객체를 공유한다. 생성된 객체는 실질적으로는 ServletContext 에 저장된다.


기본 객체, implicit object

request: 클라이언트의 요청 정보를 담고 있는 객체

  • 스코프: request
  • 실제 타입: javax.servlet.http.HttpServletRequest 또는 javax.servlet.ServletRequest

response: 요청에 대한 응답 정보를 담고 있는 객체

  • 스코프: page
  • 실제 타입: javax.servlet.http.HttpServletResponse 또는 javax.servlet.ServletResponse

out: 페이지 내용을 담고 있는 출력 스트림 객체

  • 스코프: page
  • 실제 타입: javax.servlet.jsp.JspWriter

pageContext: JSP 페이지 실행에 필요한 Context 정보를 담고 있는 객체

  • 스코프: page
  • 실제 타입: javax.servlet.jsp.PageContext

session: 세션 정보를 담고 있는 객체

  • 스코프: session
  • 실제 타입: javax.servlet.http.HttpSection

application: Context의 모든 페이지가 공유할 데이터를 담고 있는 객체

  • 스코프: application
  • 실제 타입: javax.servlet.ServletContext

config: JSP 페이지의 서블릿 설정 데이터 초기화 정보 객체 

  • 스코프: page
  • 실제 타입: javax.servlet.ServletConfig

page: JSP 페이지를 구현한 자바 클래스 객체

  • 스코프: page
  • 실제 타입: java.lang.Object

exception: JSP 페이지의 서블릿 실행 시 처리하지 못한 예외 객체

  • 스코프: page
  • 실제 타입: java.lang.Throwable


내부 객체의 속성

request, session, application, pageContext 내부 객체는 임의 속성(attribute) 값을 저장하고 읽을 수 있는 다음의 메소드를 제공 한다.

  • void setAttribute( String  key, Object  value ): 주어진 key속성의 값을 value로 지정한다.
  • Enumeration getAttributeNames(): 모든 속성의 이름을 구한다.
  • Object getAttribute( String  key ): 주어진  key속성의 값을 얻어낸다.
  • void removeAttribute( String  key ): 주어진  key속성의 값을 제거한다.


'Programming > Web' 카테고리의 다른 글

[php] CROSS DOMAIN 대응 방법  (0) 2019.07.05
[php] base 64 url safe  (0) 2018.02.22
[PHP] 문자열 검색  (0) 2017.05.22
XML 특수문자 처리방법  (0) 2017.03.07