JAVA/JSP
JSP | 내장 객체 개요 & Method &객체 영역
pathas
2020. 2. 19. 16:54
내장 객체
- 스크립트릿 안에서만 사용 가능
- 스크립트릿에 내장 객체와 같은 이름의 변수를 선언할 수 없음
선언문에서는 사용 가능하나 가급적 사용하지 않는 것이 좋음 - 서블릿 컨테이너가 해당 JSP 페이지 실행 시 자동으로 생성
jsp가 변환된 fileName_jsp.java 파일을 열어보면
_jspService() 메소드 내부에 선언되어 있음
내장 객체 종류
| 내장 객체 | 반환값 타입 | 설명 |
|---|---|---|
| request | javax.servlet.http.httpServletRequest 또는 javax.servlet.ServletRequest |
웹 브라우저의 요청 정보를 저장하고 있는 객체 |
| response | javax.servlet.http.httpServletResponse 또는 javax.servlet.ServletResponse |
웹 브라우저의 요청에 대한 응답 정보를 저장하는 객체 |
| out | javax.servlet.jsp.JspWriter | JSP 페이지의 출력할 내용을 가지고 있는 출력 스트림 객체 |
| session | javax.servlet.http.HttpSession | 하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체 |
| application | javax.servlet.ServletContext | 웹 애플리케이션 Context의 정보를 담고 있는 객체 |
| pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보를 저장하고 있는 객체 |
| page | java.lang.Object | JSP 페이지를 구현한 자바 클래스 객체 |
| config | javax.servlet.ServletConfig | JSP 페이지에 대한 설정 정보를 담고 있는 객체 |
| exception | java.lang.Throwable | JSP 페이지에서 예외가 발생한 경우 사용하는 객체 |
※ 자주 사용되는 내장 객체는 굵은 글씨로 표기
setAttribute() & getAttribute
request, session, application, pageContext 내장 객체는
속성(attribute)값을 저장하고 읽을 수 있는 메소드 제공속성값을 저장하고 읽을 수 있는 기능은
JSP 페이지 및 서블릿 간 정보를 주고받을 수 있도록 함
| 메소드 | 설명 |
|---|---|
| void setAttribute(String key, Object value) | 해당 내장 객체의 속성값을 설정하는 메소드 key 속성명에 value 속성값을 지정 |
| java.util.Enumeration getAttributeNames() | 해당 내장 객체의 속성명을 읽어오는 메소드 모든 속성의 이름을 얻어옴 |
| Object getAttribute(String key) | key 속성명에 해당하는 속성값 반환 |
| void removeAttribute(String key) | key 속성명에 해당하는 속성 제거 |
※ 내장 객체 영역에 해당하는 범위 내에서 데이터 공유 가능
내장 객체 영역
웹 애플리케이션은 page, request, session, application 4개의 영역(scope)을 가짐
내장 객체의 영역은 객체 유효기간이라고도 불리며
객체를 누구와 공유할 것인가를 나타냄
page 영역
- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 하나의 JSP 페이지가 호출됨
- page 영역은 객체를 하나의 페이지 내에서만 공유
- pageContext 내장 객체 사용
request 영역
- 한 번의 웹 브라우저의 요청에 대해 같은 요청을 공유하는 페이지가 대응됨
- 같은 request 영역인 경우 두 개의 페이지가 같은 요청을 공유할 수 있음
- 객체를 하나 또는 두 개의 페이지 내에서 공유 가능
- include, forward 액션 태그 사용시 request 내장 객체를 공유하게 되며
그에 따라 같은 request 영역이 됨 - 주로 페이지 모듈화에 사용
- request 내장 객체 사용
session 영역
- 하나의 웹 브라우저당 1개의 session 객체 생성
- 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 객체 공유
- 주로 회원 관리(인증)에 사용되며 session 내장 객체 사용
application 영역
- 하나의 웹 애플리케이션(프로젝트)당 1개의 application 객체 생성
- 같은 웹 애플리케이션에 요청되는 페이지들은 같은 객체 공유
/Project_Name 웹 애플리케이션에서는 같은 application 객체 공유 - 애플리케이션 전체에서 공유하는 객체이므로
메모리에 부담이 갈 수 있어서 자주 사용되지는 않음 - application 내장 객체 사용
JSP 내장 객체에 대해 간단히 살펴보고 set/getAttribute 메소드와 내장 객체의 영역에 대해 알아보았습니다.
set/getAttiribute 메소드를 사용하면 내장 객체 영역 내에서 페이지(또는 서블릿) 간 데이터를 공유할 수 있습니다.
이에 대한 자세한 예제 및 중요한 내장 객체는 앞으로 따로 다룰 예정입니다.