본문 바로가기

JSP&Servlet

JSP의 내장 객체

1. 내부 객체란?

: 내부 객체란 jsp 페이지를 작성할 때 특별한 기능을 제공하는 JSP 컨테이너가 제공하는 특별한 객체를 말한다. 간단히 말해서, 자바에서 import해서 사용했던 Math와 같이 내부에 미리 만들어진 기능들을 가리킨다.

 

이러한 JSP 컨테이너가 제공하는 내부 객체에는 어떠한 것이 있는지 알아보자.

내부 객체는 사용되는 범주에 따라 4가지 형태로 분류가 된다.

 

  • jsp 페이지 입출력 관련 내부 객체
  • jsp 페이지 외부 환경 정보 제공 내부 객체
  • jsp 페이지 서블릿 관련 내부 객체
  • jsp 페이지 예외 관련 기본 객체

 

이러한 내부 객체에는 모두 9개가 있으며, 주로 많이 사용하는 것이 있다. 각각의 특정한 변수명과 용도에 대해서 살펴보겠다.

 

[표 1] jsp 페이지의 내부 객체

 

request, session, application, pageContext 내부 객체는 임의 속성 값(attribute)을 저장하고 읽을 수 있는 메소드를 제공하고 있따. 속성 값을 저장하고 읽을 수 있는 기능은 jsp 페이지들 또는 서블릿 간에 정보를 주고받을 수 있도록 해 준다.

 

[표 2] 내부 객체의 속성을 저장하고 읽어내는 공통 메소드

 

2. request, response, out 내부 객체

: request, response, out 내부 객체는 jsp 페이지 입출력과 관련한 내부 객체에 해당한다. 클라이언트로부터 jsp 페이지의 호출에 의해서 전달되는 데이터의 요청과 응갑 그리고 출력의 역할을 담당하는 내부 객체들이다.

 

1) request

request 객체는 브라우저에서 jsp 페이지로 전달되는 데이터의 묶음으로 HTTP 헤더와 HTTP 바디로 구성되어 있다. JSP 컨테이너는 요청된 HTTP 메시지를 통해 HttpServletRequest 객체 타입의 request 객체명으로 사용한다.

 

 

2) response

response 객체는 요청을 시도한 클라이언트로 전송할 응답을 나타내는 데이터의 묶음이다. JSP 컨테이너는 요청된 HTTP 메시지를 통해 HttpServletResponse 객체 타입으로 사용되고 response 객체명으로 사용한다.

 

 

3) out

out 객체는 jsp 페이지의 결과를 클라이언트에 전송해 주는 출력 스트림을 나타내며 jsp 페이지가 클라이언트에게 보내는 모든 정보는 out 객체를 통해서 전달된다. out 객체는 java.io.Writer 클래스를 상속받은 javax.servlet.jsp.JspWriter 클래스 타입의 객체이며, out 객체명으로 사용한다.

 

 

3. session, application, pageContext 내부 객체

: session, application, pageContext 내부 객체는 현재 실행되는 페이지의 외부 환경 정보(context)와 관련된 내부 객체들이다. session은 요청에 관한 Context를 제공하고 application은 서블릿 Context를 제공하며, pageContext는 jsp 페이지 자체의 Context를 제공한다.

 

1) session

session 객체는 클라이언트 요청에 대한 context 정보의 세션과 관련된 정보(데이터)를 저장하고 관리하는 내부 객체이다.

 

 

2) application

application 객체는 서블릿 또는 어플리케이션 외부 환경 정보(Context)를 나타내는 내부 객체이다. application 객체를 통해서 어플리케이션이 실행되는 서버의 정보와 서버 측 자원에 대한 정보를 얻어내거나 어플리케이션이 실행하고 있는 동안에 발생할 수 있는 이벤트 로그와 관련된 기능들을 제공한다. application 객체는 javax.servlet.ServletContext 객체 타입으로 제공을 한다.

 

 

3) pageContext

pageContext 객체는 현재 jsp 페이지의 Context를 나타내며, pageContext 내부 객체를 통해서 다른 내부 객체에 접근할 수가 있다. 예를 들어 out 내부 객체를 구하고자 할 경우의 코드는 다음과 같다.

 

 JspWriter pageOut = pageContext.getOut(); 

 

그리고 pageContext 객체는  javax.servlet.jsp.PageContext 클래스 타입으로 제공되는 JSP 내부 객체이다.

 

 

4. page, config 내부 객체

: page 내부 객체와 config 내부 객체를 통해서 jsp 페이지가 변환된 서블릿과 관련된 내용에 접근할 수 있도록 하는 객체들이다. 따라서 page 내부 객체는 변환된 서블릿 객체 자체를 나타내며, config 내부 객체는 서블릿 초기 정보 설정을 위한 객체이다.

 

1) page

page 객체는 jsp 페이지 그 자체를 나타내는 객체이다. 그래서 jsp 페이지 내에서 page 객체는 this 키워드로 자기 자신을 참조할 수가 있다. 그리고 page 객체는 javax. servlet.jsp.HttpJspPage 클래스 타입으로 제공되는 JSP 내부 객체이다.대부분의 JSP 컨테이너는 java만을 스크립트 언어로 지원하기 때문에 page 객체는 현재 거의 사용되지 않는 내부 객체이다.

 

2) config

config 객체는 javax. servlet.ServletConfig 클래스 타입의 내부 객체이다. ServletConfig는 Servlet에게 Servlet을 초기화하는 동안 참조해야 할 정보를 전해 주는 역할을 한다. 다시 말하면, 서블릿이 초기화될 때 참조해야 할 다른 여러 정보를 가지고 있다가 전해 준다고 생각하면 된다.

 

 

5. exception 내부 객체

exception 내부 객체는 프로그래머가 jsp 페이지에서 발생한 예외를 처리하는 페이지를 지정한 경우 에러 페이지에 전달되는 예외 객체이다. page 지시자의 isErrorPage 속성을 "true"로 지정한 jsp 페이지에서만 사용 가능한 내부 객체이다. 그리고 exception 객체는 java.lang.Throwable 클래스 타입으로 제공된느 JSP 내부 객체이다.

 

'JSP&Servlet' 카테고리의 다른 글

JDBC로 데이터베이스 연동  (0) 2022.03.18
자바빈즈(JavaBeans)  (0) 2022.03.14
서블릿 기초 문법  (0) 2022.03.11
JSP의 지시자와 태그  (0) 2022.03.08
JSP 기초 문법  (0) 2022.03.07