주니어 기초 코딩공부/JSP 기초

[JSP] 자바서버페이지의 기본 객체(내장객체) 설명 out, pageContext, application

jju_developer 2023. 1. 23. 18:50
728x90

안녕하세요 jju_developer입니다.

이번시간에는 학원에서 배운 자바서버페이지의 기본 객체에 대한 내용 정리본을 공유드립니다.

 

기초 용어 정리

1. servlet 클래스: HTTP(요청, 응답)를 지원하는 자바 클래스 (통신 가능)

2. javabean 클래스: 데이터를 담는 자바 클래스 (데이터 저장)

 

JSP 내장 객체란 컨테이너에 의해 미리 선언된 자바 클래스의 참조 변수입니다.
즉, JSP에서 선언하지 않고 사용할 수 있는 객체라는 뜻이죠~!
request, session, application 등 총 9개가 존재합니다.

 

JSP 기본 객체

가장 많이 쓰이는 JSP 기본 객체 
 request  클라이언트의 요청 정보를 저장
 response  클라이언트의 응답 정보를 저장
 pageContext  JSP 페이지 정보를 저장
 session  HTTP 세션 정보를 저장
 application  웹 어플리케이션 정보를 저장
 out  JSP 페이지 결과 출력시 사용되는 출력 스트림
 config  JSP 페이지 설정 정보 저장
 page  JSP 페이지를 구현한 자바 인스턴스
 exception  에러 페이지에서 사용되는 예외 객체

 


이 기본 객체 중에서 out 객체를 먼저 설명을 드리겠습니다.

 

먼저 설명을 드리는 이유는 우리가 출력을 할때에 보통

 

스크립트릿 과 표현식을 같이 사용하여 하나씩 띄어서 문서를 표현했었던 것을 기억하실 겁니다.

이렇게 출력을 하면 너무 지저분해지기 때문에

out 객체를 활용하여 더욱 깔끔하게 출력하는 방법에 대해 공유드리려고 합니다.

 

JSP 페이지가 생성하는 모든 내용은 out 기본 객체를 통해 전송됩니다.

이때 문서로 출력을 하기 위해 out객체를 활용하여 문서를 출력하게 됩니다.


두번째로는 pageContext 객체에 대한 설명입니다.

우선, pageContext가 뭐 하는 기능인지 볼까요?

 

pageContext 기본 객체는 JSP 페이지와 일대일로 연결된 객체로 다음의 기능을 제공합니다.
• 기본 객체 구하기
• 속성 처리하기
• 페이지의 흐름 제어하기
• 에러 데이터 구하기

 

예제를 보면 

 

여기서 getRequest 객체는 HttpServletRequest의 부모입니다.

페이지 컨택스트에서 얻어온 객체는 HttpServletRequest로 형변환을 해야 합니다.

결론은 <%= request == httpRequest %> 이 둘이 동일하다는 뜻입니다.

 


자, 이제 웹 애플리케이션 전반에 걸쳐서 사용되는 정보를 담고 있는 객체는 무엇일까요??

바로 application 객체입니다.

 

application은 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용합니다.

처음 컨테이너가 구동될 때 단 하나의 객체만 생성됩니다.
기본적으로 서버에 대한 정보나 서블릿에 대한 정보들을 가지고 있는데 애플리케이션(프로젝트 단위) 내 모든 JSP/서블릿들이 공유하는 객체다 보니 데이터를 편리하게 운송하는 수단으로 주로 쓰입니다.

데이터를 한 페이지에서 다른 페이지로 보내줄 때 전역변수처럼 쓰고 싶다 할 때 JSP의 application 객체를 쓰면 편리합니다.

application 객체로 어떻게 파라미터를 읽어오는 것일까요?

항상 이 위치에 있어야합니다.

웹서버가 올라올 때 제일 먼저 web.xml을 확인하여 올라옵니다.

웹서버에서 최초로 참조하는 파일이 바로 web.xml입니다.

이렇게 web, xml이 있고

그 아래에 있는 readInitParameter.jsp를 실행시켜 보겠습니다.

이렇게 읽어옵니다.

어떻게 이렇게 읽어오는 것일까요?

Web.xml은 텍스트 파일이고 그거랑 jsp 파일이랑 비교해서 하는 것이죠!

자바 코드를 JSP 파일에서 쓰고 순수한 자바 코드에서 web.xml 파일을 읽어오는 것이므로,

자바 코드에서 수정 안 하고 웹 xml 콘텍스트만 수정하면 더 많은 내용을 불러올 수 있습니다.

나중에 이런 코드를 자바 클래스 파일로 만들면 더 이해가 갈 것이니, 

그냥 기초적인 흐름만 파악하신다고 생각하시면 마음이 편해집니다...ㅎ

 

이제 웹정보 말고, 서버정보를 읽고 싶다! 하면 어떻게 읽을 수 있을까요?

 

이렇게 앞서 말씀드린 application 객체를 이용하여 서버의 정보도 읽어올 수 있습니다.

 

그럼 여기까지  자바서버페이지의 기본 객체(내장객체) out, pageContext, application에 대한 설명을 마치겠습니다.

 

수고하셨습니다.

728x90