이전 시간에 JSP 에서 쓰이는 기본 객체들과 각 영역들에 관하여 공부하였지만, 좀 더 쉽게 알아볼 수 있도록 모아서 정리해보았다.
기본 객체 중 없는 내용은 이후에 공부를 한 뒤 추가하도록 하겠다. 각 객체별 메서드와 특징을 한 눈에 알아보자.
JSP 기본 객체
request |
클라이언트의 요청 정보를 저장 |
response |
클라이언트의 응답 정보를 저장 |
pageContext |
JSP 페이지 정보를 저장 |
session |
HTTP 세션 정보를 저장 |
application |
웹 어플리케이션 정보를 저장 |
out |
JSP 페이지 결과 출력시 사용되는 출력 스트림 |
config |
JSP 페이지 설정 정보 저장 |
page |
JSP 페이지를 구현한 자바 인스턴스 |
exception |
에러 페이지에서 사용되는 예외 객체 |
request 기본 객체
- 클라이언트 / 서버 정보 메서드
getRemoteAddr() | 클라이언트의 IP주소 / 리턴 타입 : String |
getContentLength() | 클라이언트 요청 정보의 길이. 알수 없는 경우 -1 리턴 / 리턴 타입 : long |
getCharacterEncoding() | 클라이언트가 요청정보를 전송할 때 사용한 캐릭터의 인코딩 / 리턴 타입 : String |
getContentType() | 클라이언트가 사용한 contentType / 리턴 타입 : String |
getProtocol() | 클라이언트가 요청한 프로토콜 / 리턴 타입 : String |
getMethod() | 웹 브라우저가 정보를 전송할 때 사용한 방식 / 리턴 타입 : String |
getRequestURI() | 웹 브라우저가 요청한 URL 경로 / 리턴 타입 : String |
getContextPath() | JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 경로 / 리턴 타입 : String |
getServerName() | 서버 이름 / 리턴 타입 : String |
getServerPort() | 서버가 실행 중인 포트 번호 / 리턴 타입 : int |
- 파라미터 메서드
getParameter(String name) | 이름이 name인 파라미터의 값. 존재하지 않을 경우 null / 리턴 타입 : String |
getParameterValues(String name) | 이름이 name인 모든 파라미터의 값을 배열로 구한다. 존재하지 않을 경우 null 리턴. / 리턴 타입 : String[] |
getParameterNames() | 웹 브라우저가 전송한 파라미터의 이름 / 리턴 타입 : java.util.Enumeration |
getParameterMap() | 웹 브라우저가 전송한 파라미터의 맵 / 리턴 타입 : java.util.Map |
- 헤더 메서드
getHeader(String name) | 지정한 이름의 헤더 값 / 리턴타입 : String |
getHeaders(String name) | 지정한 이름의 헤더 목록 / 리턴 타입 : Enumeration |
getHeaderNames() | 모든 헤더의 이름 / 리턴 타입 : Enumeration |
getIntHeader(String name) | 지정한 헤더의 값을 정수 값으로 / 리턴 타입 : int |
getDateHeader(String name) | 지정한 헤더의 값을 시간 값으로 읽어온다.(1970년 1월 1일 기준, 1/1000초 단위) / 리턴 타입 : long |
response 기본 객체
- 헤더 추가 메서드
addDateHeader(String name, long date) | name 헤더에 date 를 추가 |
addHeader(String name, String value) | name 헤더에 value 값을 추가 |
addIntHeader(String name, int value) | name 헤더에 정수 값 value 를 추가 |
setDateHeader(String name, long date) | name 헤더의 값을 date 로 지정 |
setHeader(String name, String value) | name 헤더의 값을 value 로 지정 |
setIntHeader(String name, int value) | name 헤더의 값을 정수 값 value 로 지정 |
containsHeader(String name) | 이름이 name 인 헤더를 포함할 경우를 true/false 로 리턴 |
- 응답 헤더
Cache-Control 응답 헤더 | 헤더의 값을 "no-cache"로 지정하면 웹 브라우저는 응답 결과를 캐시에 저장하지 않는다. (HTTP 1.1 버전) |
Pragma 응답 헤더 | 헤더의 값을 "no-cache"로 지정하면 웹 브라우저는 응답 결과를 캐시에 저장하지 않는다. (HTTP 1.0 버전) |
- 리다이렉트 메서드
sendRedirect(String location / URL) |
페이지를 실행 한 후 지정한 페이지로 이동할 때 사용 |
- URL 인코딩 메서드
URLEncoder.encode(String value, "character set") |
파라미터 값으로 사용될 문자열을 지정한 캐릭터 셋을 이용하여 인코딩. / 리턴 타입 : String |
out 기본 객체
- 출력 메서드
print() |
데이터 출력 |
println() |
데이터를 출력하고 한 줄 띄운다. (\r\n / \n) |
newLine() |
한 줄 띄운다. (\r\n / \n) |
- 버퍼 메서드
getBufferSize() |
버퍼의 크기를 구한다. / 리턴 타입 : int |
getRemaining() |
버퍼의 남은 크기를 구한다. / 리턴 타입 : int |
clear() |
버퍼를 비운다. 이미 플러시 되어있을 경우 IOException 발생. |
clearBuffer() |
버퍼를 비운다. IOException 발생하지 않음. |
flush() |
버퍼를 플러시 한다. |
isAutoFlush() |
버퍼가 다 찼을 때 자동으로 플러시 할 경우 true 반환 (page 디렉티브 autoFlush 속성값의 영향을 받는다) |
pageContext 기본 객체
- 기본 객체 접근 메서드
getRequest() | request 기본 객체를 구한다. / 리턴 타입 : ServletRequest |
getResponse() | response 기본 객체를 구한다. / 리턴 타입 : ServletResponse |
getSession() | session 기본 객체를 구한다. / 리턴 타입 : HttpSession |
getServletContext() | application 기본 객체를 구한다. / 리턴 타입 : ServletContext |
getServletConfig() | config 기본 객체를 구한다. / 리턴 타입 : ServletConfig |
getOut() | out 기본 객체를 구한다. / 리턴 타입 : JspWriter |
getException() | exception 기본 객체를 구한다. (에러 페이지에서만 사용) / 리턴 타입 : Exception |
getPage() | page 기본 객체를 구한다. / 리턴 타입 : Object |
application 기본 객체
- 초기화 파라미터 메서드
getInitParameter(String name) |
이름이 name인 초기화 파라미터의 값을 읽어온다. 존재하지 않을 경우 null 리턴. / 리턴 타입 : String |
getInitParameterNames() |
초기화 파라미터의 이름 목록을 리턴. / 리턴 타입 : Enumeration |
* 초기화 파라미터 메서드를 사용하기 전에 web.xml 파일에 초기화 파리미터를 추가해야 한다.
<context-param>
<description>파라미터 설명</description>
<param-name>파라미터 이름</param-name>
<param-value>파라미터 값</param-value>
</context-param>
- 서버 정보 메서드
getServerInfo() |
서버 정보를 구한다. / 리턴 타입 : String |
getMajorVersion() |
서버가 지원하는 서블릿 규약의 메이저 버전 정수 부분 리턴. / 리턴 타입 : String |
getMinorVersion() |
서버가 지원하는 서블릿 규약의 마이너 버전 정수 부분 리턴. / 리턴 타입 : String |
- 로그 메서드
log(String msg) |
로그 메시지 msg를 기록. |
log(String msg, Throwable throwable) |
로그 메시지 msg를 기록. 예외 정보도 함께 기록. |
* JSP가 자체적으로 제공하는 log() 메서드는 중간에 jsp: 문장이 추가된다.
- 자원 접근 메서드
getRealPath(String path) |
지정한 경로에 해당하는 자원의 경로를 리턴. / 리턴 타입 : String |
getResource(String path) |
지정한 경로에 해당하는 자원의 URL 객체를 리턴. / 리턴 타입 : java.util.URL |
getResourceAsStream(String path) |
지정한 경로에 해당하는 자원으로부터 데이터를 읽어올 수 있는 InputStream 리턴. / 리턴 타입 : java.io.InputStream |
기본 객체와 영역
PAGE 영역 |
하나의 JSP 페이지를 처리할 경우 사용하는 영역 / pageContext 기본 객체 (웹 브라우저의 요청을 처리하는 JSP 페이지가 여기에 해당된다) |
REQUEST 영역 |
하나의 HTTP 요청을 처리할 때 사용하는 영역 / request 기본 객체 (URL이 넘어가는 경우 등 페이지의 변화가 일어나는 경우. 요청할 때마다 새로운 request 기본 객체가 생성) |
SESSION 영역 |
하나의 웹 브라우저와 관련된 영역 / session 기본객체 (서로 다른 두 개의 웹 브라우저가 같은 JSP 페이지를 사용해도 두 웹 브라우저는 서로 다른 session 영역에 포함. 서로 다른 session 기본 객체 사용) |
APPLICATION 영역 |
하나의 웹 어플리케이션과 관련된 영역 / application 기본객체 (모든 JSP 페이지는 한 개의 application 기본 객체를 공유하고 application 영역에 포함된다) |
기본 객체의 속성 사용하기
setAttribute(String name, Object value) |
이름이 name인 속성의 값을 value로 지정한다. / 리턴 타입 : void |
getAttribute(String name) |
이름이 name인 속성의 값을 구한다. 존재하지 않을 경우 null 리턴. / 리턴 타입 : Object |
removeAttribute(String name) |
이름이 name인 속성을 삭제. / 리턴 타입 : void |
getAttributeNames() |
속성의 이름 목록을 구한다. (pageContext 기본 객체는 이 메서드를 제공하지 않는다) / 리턴 타입 : java.util.Enumeration |