[ View ]/JSP

[ JSP ] 내장 객체

환이s 2023. 3. 3. 12:18
728x90

이전 포스팅으로 DB 연동하는 방법, 약간의 MVC 패턴을 알아봤습니다!

오늘은 JSP 스크립틀릿에서 사용되는 내장 객체에 대해 알아보겠습니다.

 

 

■  JSP 내장 객체

 

JSP 내장 객체는 코드 내에서 선언하지 않고 사용할 수 있는 객체입니다. 즉, JSP가 서블릿 형태로 자동 변환된 코드 내에 자동으로 포함되어 있는 멤버변수, 메서드, 매개변수 등의 각종 참조 변수들을 말합니다. 내장 객체에 대해서 정리해 보자면 다음과 같습니다.

 

  • JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체입니다. 
  • JSP 페이지에 별도의 import문 없이 자유롭게 사용 가능합니다
  • 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출해서 사용할 수 있습니다.

 

※ 어떻게 선언하지 않고 사용할 수 있는 걸까요??

JSP 코드는 서블릿으로 변환된 후 모두 _jspService() 메서드 안으로 들어가기 때문에 메서드 매개변수인 request, response와 지역변수로 선언된 pageContext, application, page, config, out 등은 모두 내장객체가 됩니다.

해당 내장객체들은 _jspService 메서드 부분에서 사용자가 작성된 코드 위에 자동으로 선언되고 초기화 되기 때문에 JSP 파일에서 프로그램을 작성할 때 내장객체를 별도의 선언 없이 사용할 수 있습니다.

 

그럼 내장객체의 종류에 대해서 알아봅시다. 

 

■  JSP 내장 객체의 종류 

 

내장 객체 설 명
request HTML Form 요소 선택 값과 같은 사용자 입력 정보를 읽어올 때 사용
response 사용자 요청에 대한 응답을 처리할 때 사용
out 사용자에게 전달하기 위한 output 스트림 처리하기 위해 사용
session 클라이언트 세션 정보를 처리하기 위해 사용
application 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용
exception 예외 처리를 위해 사용
config 현재 JSP에 대한 초기화 환경을 처리하기 위해 사용
page 현재 JSP 페이지에 대한 클래스 정보
pageContext 현재 JSP 실행에 대한 context 정보를 참조하기 위해 사용

 

그럼 객체마다 주요 기능 및 메서드에 대해서 알아봅시다.

 

 

■  request

 

request사용자 요청과 관련된 정보를 처리할 때 사용하고, 주로 HTML 폼을 통해 전달된 값을 가져올 때 사용합니다.

 

메서드 설 명
getParameterNames() 현재 요청에 포함된 인수 이름을 Enumeration 형태로 전달
getParameter(name) 문자열name과 같은 이름을 가진 인수 값을 가져 옴
getParameterValues(name) 문자열 name과 같은 이름을 가진 인수 값을 배열 형태로 가져 옴 checkbox, multiple list 등에 주로 사용한다
getCookies() 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 가져 옴
getMethod() 현재 요청이 GET, POST인지 가져 옴
getSession() 현재 세션 객체를 가져 옴
getRemoteAddr() 클라이언트 IP 주소를 알려줌
getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려줌
setCharacterEncoding() 현재 jsp로 전달되는 내용을 지정한 캐릭터셋으로 변환 html form에서 한글 입력 시 정상적으로 처리하려면 반드시 필요

 

■  response

 

response 객체는 사용자 요청(request)을 처리하고 응답을 다른 페이지로 전달하는 기능을 제공합니다. 

 

메서드 설 명
setContentType(type) 문자열 형태의 MIME Type 으로 ContentType 설정
setHeader(name, value) 문자열name 이름으로 문자열 value 값을 헤더로 세팅
setDateHeader(name, date) 문자열 name 이름으로 date 에 설정된 밀리세컨드 시간값을 헤더에 설정
sendError(status,msg) 에러 코드를 세팅하고 메시지 보냄
sendRedirect(url) 클라이언트 요청을 다른 페이지 보냄

 

■  out

out 객체는 출력 스트림으로써, 사용자 웹 브라우저로 출력하기 위한 채널입니다. 

 

스트립틀릿에서 브라우저로 텍스트 출력하는 데 사용하고, 버퍼 관련 메서드와 출력 관련 메서드로 구성되며 out을 이용해서 출력된 내용은 서버의 콘솔이 아닌 사용자에게 전달됩니다.

 

메서드 설 명
getBufferSize() output buffer 크기를 바이트로 알려준다.
getRemaining() 남아있는 버퍼 크기 중 사용 가능한 비율을 알려준다.
clearBuffer() 버퍼에 있는 컨텐츠를 모두 지운다
flush() 버퍼를 비우고 output stream도 비운다.
close() output stream을 닫고 버퍼를 비운다
println(content) content에 내용을 newline과 함께 출력
print(content) content에 내용을 출력

 

■  session

 

session객체는 클라이언트와의 지속적인 연결 유지를 위한 세션 처리를 합니다. 세션은 하나의 애플리케이션 내에서만 유효하며, 두 개의 서로 다른 애플리케이션에서는 쿠키를 사용해야 합니다. 단, 세션은 단순한 쿠키 대용이 아닙니다.

 

메서드 설 명
getID() 각 접속에 대한 세션 고유의 ID를 문자열 형태로 반환
getCreatingTime() 세션이 생성된 시간을 January 1, 1970 GMT.부터 long형 밀리세컨트 값으로 반환
getLastAccessedTime() 현재 세션으로 마지막 작업한 시간을 long형 밀리세컨드 값으로 반환
getMaxInactiveInterval() 세션 유지 시간을 초로 반환 -> 세션 유효 시간을 알수 있다.
setMaxInactiveInterval() 세션 유효 시간을 t에 설정된 초 값으로 설정
invalidate() 현재 세션을 종료. 세션과 관련한 값을 모두 지운다
getAttribute(attr) 문자열 attr로 설정된 세션 값을 java.lang.Object 형태로 반환
setAttribute(name, attr) 문자열 name으로 java.lang.Object attr을 설정

 

■  config

 

config 객체는 애플리케이션에서 공유할 수 있는 초기화 변수에 접근합니다. 조건으로는 web.xml에 초기화 파라미터가 설정되어야 합니다. 또한 애플리케이션의 ServetContext 객체를 가져옵니다.

 

메서드 설 명
getInitParameterNames() 초기 파라미터 값의 설정 이름을 Enumeration 객체 로 리턴
getInitParameter(name) 문자열 name에 해당하는 초기화 파라미터 값을 리 턴
getServletContext() 현재 애플리케이션의 ServetContext 객체를 반환 내장 객체인 application과 동일한 객체 참조

 

■  application

 

application웹 애플리케이션 전체를 관리하는 객체입니다. 전체를 관리한다고 하면 개발자를 위한 서버 관련 메서드가 있고, 서버에 대한 자원 정보 메서드, 표 로그 관련 메서드가 있습니다. 따라서 application 객체를 통해 각 서블릿이나 JSP에서 공유하려고 하는 각종 정보를 설정하고 참조할 수 있습니다.

 

< 개발자 서버 관련 메서드 >

메서드 설 명
getServerInfo() JSP/서블릿 컨테이너 이름과 버전 반환
getMajorVersion() 컨테이너가 지원하는 서블릿 API의 Major 버전 정보 반환
getMinorVersion() 컨테이너가 지원하는 서블릿 API의 Minor 버전 정보 반환

 

<서버 자원 정보 메서드 >

메서드 설 명
getMimeType(filename) 문자열 filename에 지정된 파일에 대한 MIME type을 반환
getResource(path) 문자열 path에 지정된 자원을 URL 객체로 반환
getResourceAsStream(path) 문자열 path에 지정된 자원을 InputStream 객체로 반환
getRealPath(path) 문자열 path에 지정된 자원을 파일 시스템의 실제 경로로 반환
getContext(path) 문자열 path에 지정된 자원의 컨텍스트 정보를 반환
getResourceDispatcher(path) 문자열 path에 지정된 자원을 위한 request dispatcher를 생 성

 

<표 로그 관련 메서드>

메서드 설 명
log(message) 문자열 message 내용을 로그 파일에 기록 로그 파일 위치는 컨테이너에 따라 다름
log(message, exception) 예외 상황과 관련한 정보를 포함하여 로그 파일에 기록

 

■  exception

 

exception 객체는 page 지시어에서 오류 페이지로 지정된 JSP 페이지에서 예외가 발생할 때 전달되는 참조 변수 입니다. 현재 페이지를 처리하다 발생하는 예외 상황에 대한 정보를 가져올 수 있습니다.

 

ex ) page 지시어에 isErrorPage=“true” 로 지정된 에러 페이지에서 사용

 

메서드 설 명
getMessage() 문자열로 된 에러 메시지를 반환한다.
printStackTrace() 표준 출력 스트림으로 스택 추적 정보를 출력한다.
toString() 예외 클래스 이름과 함께 에러 메시지를 반환한다.

 


마치며

 

오늘은 JSP 내장객체의 메서드 및 주요 기능에 대해서 알아봤습니다.

다음 포스팅으로는 모델에 맞춰서 오늘 알아본 객체를 활용해 보겠습니다.

 

728x90

'[ View ] > JSP' 카테고리의 다른 글

[ JSP ] 에러 처리  (0) 2023.03.06
[ JSP ] 액션 태그  (0) 2023.03.05
[ JSP ] model 종류 및 내장 객체 응용  (0) 2023.03.04
[ JSP ] DB 연결  (0) 2023.03.02
[ JSP ] 웹 프로그래밍(JSP)의 개요 및 구성 요소  (0) 2023.03.01