Implicit Object
Implicit Object
내장 객체 Implicit Object
내장 객체
- JSP 페이지가 실행될 때 컨테이너가 자동으로 생성
- 클라이언트와 서버가 통신할 때 JSP의 내장 객체는 요청과 응답 혹은 HTTP header 등의 정보를 쉽게 다룰 수 있도록 함
내장 객체의 특징
- 컨테이너가 미리 선언해놓은 참조 변수를 이용해 사용
- 별도의 객체 생성 없이 각 내장 객체의 메서드를 사용 가능
- JSP 문서 안의 <%스크립틀릿%>과 <%=표현식%>에서만 사용 가능
- <%!선언부%>에서는 즉시 사용하는건 불가능하고, 매개변수로 전달받아 사용
내장 객체의 종류
| 내장 객체 | 타입 | 설명 |
|---|---|---|
| request | jakarta.servlet.http.HttpServletRequest | 클라이언트의 요청 정보를 저장 |
| response | jakarta.servlet.http.HttpServletResponse | 클라이언트의 요청에 대한 응답 정보를 저장 |
| out | jakarta.servlet.jsp.JspWriter | JSP 페이지에 출력할 내용을 담는 출력 스트림 |
| session | jakarta.servlet.ServletSession | 웹 브라우저 정보를 유지하기 위한 세션 정보를 저장 |
| application | jakarta.servlet.ServletContext | 웹 어플리케이션 관련 컨텍스트 정보를 저장 |
| pageContext | jakarta.servlet.jsp.PageContext | JSP 페이지에 대한 정보를 저장 |
| page | java.lang.Object | JSP 페이지를 구현한 자바 클래스의 인스턴스 |
| exception | java.lang.Throwable | 예외가 발생한 경우에 사용 |
request 객체
- 클라이언트와 서버에 대한 정보 읽기
- 클라이언트가 전송한 요청 매개변수에 대한 정보 읽기
- 요청 헤더 및 쿠키 정보 읽기
클라이언트와 서버의 환경정보 읽기
- 클라이언트는 웹 브라우저를 통해 서버 측으로 요청
- 이 때 요청은 GET 방식 혹은 POST 방식으로 구분
- 요청 URL, 포트 번호, 쿼리스트링 등을 명시 가능
- request 내장 객체를 이용해 정보 확보
클라이언트의 요청 매개변수 읽기
- form 태그 하위 요소를 통해 입력한 값들도 서버로 전송
- 전송된 값은 서버에서 읽은 후 변수에 저장
- 적절한 처리를 위해 컨트롤러나 모델로 전달
HTTP 요청 헤더 정보 읽기
- HTTP 프로토콜은 헤더에 부가적인 정보를 담음
- 웹 브라우저의 종류나 선호하는 언어 등 일반적인 HTML 문서 데이터 외의 추가 정보를 서버와 클라이언트가 교환할 수 있도록 문서의 선두에 삽입
response 객체
- 클라이언트의 요청에 대한 응답을 웹 브라우저로 보내주는 역할
- 페이지 이동을 위한 redirect 와 HTTP 헤더에 응답 헤더 추가
out 객체
- 웹 브라우저에 변수 등의 값을 출력할 때 주로 사용
- 스크립틀릿 내에서 변수를 웹 브라우저에 출력 시 표현식보다 out 사용
- 버퍼를 사용 –> 출력되는 모든 정보는 버퍼에 먼저 저장된 후 웹 브라우저에 출력
application 객체
- 웹 어플리케이션당 하나만 생성
- 모든 JSP 페이지에서 접근 가능
- ServeletContext 타입
- 웹 어플리케이션 전반에서 이용하는 정보를 저장하거나, 서버의 정보, 서버의 물리적 경로 등을 얻어오는데 사용
web.xml(deployment descriptor): 웹 어플리케이션에 대한 여러 가지 설정을 저장하는 곳
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.