이전 포스팅으로 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 내장객체의 메서드 및 주요 기능에 대해서 알아봤습니다.
다음 포스팅으로는 모델에 맞춰서 오늘 알아본 객체를 활용해 보겠습니다.
'[ 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 |