JSP 내장객체 (Implicit Object)란?
웹 컨테이너가 객체 생성 없이 바로 사용할 수 있게 제공하는 객체
1. request 객체 - javax.servlet.http.HttpServletRequest
- 웹 브라우저의 요청 정보를 저장하고 있는 객체
- 입력폼에 입력한 사용자의 요구사항을 얻어낼 수 있는 요청 메소드 제공
입력폼에 입력한 사용자의 요구사항을 얻어내는 요청 메소드 | |
String getParameter(name) | 파라미터 변수 name에 저장된 변수 값을 얻어내는 메소드 |
String[] getParameterValues(name) | 파라미터 변수 name에 저장된 모든 변수 값을 얻어내는 메소드 |
Enumeration getParameterNames() | 요청에 의해 넘어오는 모든 파라미터 변수를 java.util.Enumeration 타입으로 리턴 |
- 요청된 파라미터의 값 외에도 웹 브라우저와 웹 서버의 정보를 가져올 수 있음
웹 브라우저, 웹 서버 및 요청 헤더의 정보를 가져올 때 사용되는 메소드 | |
String getProtocol() | 웹 서버로 요청 시, 사용중인 프로토콜 리턴 |
String getServerName() | 웹 서버로 요청 시, 서버의 도메인 이름 리턴 |
웹 서버-사용자의 요구사항을 얻어내는 요청 메소드 | |
String getMethod() | 웹 서버로 요청시, 요청에 사용된 요청 방식(GET/POST/PUT 등)을 리턴 |
String getQueryString() | 웹 서버로 요청시, 요청에 사용된 QueryString을 리턴 |
String getRequestURI() | 웹 서버로 요청시, 요청에 사용된 URL로부터 URI값을 리턴 |
String getRemoteHost() | 웹 서버로 정보를 요청한 웹 브라우저의 호스트 네임을 리턴 |
String getRemoteAddr() | 웹 서버로 정보를 요청한 웹 브라우저의 IP주소를 리턴 |
String getServerPort() | 서버의 Port 번호를 리턴 |
String getContextPath() | 해당 JSP페이지가 속한 웹 어플리케이션의 컨텍스트 경로를 리턴 |
String getHeader(name) | HTTP 요청 헤더(header)의 헤더이름(name)에 해당하는 속성 값을 리턴 |
Enumeration getHeaderNames() | 웹 서버로 요청시, HTTP 요청 헤더(header)에 있는 모든 헤더네임을 리턴 |
2. response 객체 - javax.servlet.http.HttpServletResponse
- 웹 브라우저의 요청에 대한 응답 정보를 저장하고있는 객체
- 응답 정보와 관련하여 주로 헤더 정보 입력, 리다이렉트 등의 기능 제공
reponse 객체의 메소드 | |
void setHeader(name, value) | header 정보의 값을 수정 |
void setContentType(type) | 웹 브라우저의 요청 결과를 보일 페이지의 contentType을 설정 |
void sendRedirect(url) | 페이지 이동-리다이렉트 |
3. out 객체 - javax.servlet.jsp.JspWriter
- JSP페이지의 출력할 내용을 가지고 있는 출력 스트림 객체
- 표현식과 같음 <%=문장%>
out 객체의 메소드 | |
boolean isAutoFlush() | 출력 버퍼가 다 찼을 때 처리여부를 결정 |
int getBufferSize() | 전체 출력 버퍼의 크기를 리턴 |
int getRemaining() | 현재 남아있는 출력 버퍼의 크기를 리턴 |
void clearBuffer() | 출력 버퍼에 저장되어있는 내용을 비움 |
String println(str) | 주어진 내용을 출력, 이때 줄 바꿈 적용X |
void flush() | 출력 버퍼의 내용을 웹 브라우저에 전송하고 비움 |
void close() | 출력 버퍼의 내용을 웹 브라우저에 전송하고 출력 스트림을 닫음 |
4. pageContext 객체 - javax.servlet.jsp.PageContext
- JSP페이지에 대한 정보를 저장하고 있는 객체
- 다른 내장 객체를 구하거나, 페이지의 흐름 제어, 에러데이터를 얻어낼 때 사용
pageContext 객체의 메소드 | |
ServletRequest getRequest() | request 객체를 얻어냄 |
ServletResponse getResponse() | reponse 객체를 얻어냄 |
JspWriter getOut() | out 객체를 얻어냄 |
HttpSession getSession() | session 객체를 얻어냄 |
ServletContext getServletContext() | application 객체를 얻어냄 |
Object getPage() | page 객체를 얻어냄 |
ServletConfig getServletConfig() | config 객체를 얻어냄 |
Exception getException() | exception 객체를 얻어냄 |
5. session 객체 - javax.servlet.http.HttpSession
- 하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체
- 웹 브라우저(클라이언트)당 1개만 할당됨 -> 주로 회원관리 시스템에서 사용자 인증에 관련된 작업 수행
session 객체의 메소드 | |
String getId() | 해당 웹 브라우저에 대한 고유한 세션 ID를 리턴 |
long getCreation Time() | 해당 세션이 생성된 시간을 리턴 |
long getLastAccessedTime() | 마지막 접근 시간을 리턴 |
void setMaxInactiveInterval(time) | 세션 유지 시간을 지정 |
int getMaxInactiveInterval() | 기본 값은 30분으로 세션 유지 시간을 리턴 |
boolean isNew() | 새로 생성된 세션의 경우 true 값을 리턴 |
void invalidate() | 세션 무효화 |
6. application 객체 - javax.servlet.ServletContext
- 웹 어플리케이션 Context의 정보를 저장하고 있는 객체
- 서버의 설정 정보, 자원에 대한 정보, 어플리케이션이 실행되는 동안에 발생할 수 있는 이벤트 로그 정보 등을 제공
- 웹 어플리케이션당 1개의 객체가 생성 -> 주로 방문자 카운트와 같은 하나의 웹 어플리케이션에서 공유하는 변수에 사용
application 객체의 메소드 | |
String getServerInfo() | 웹 컨테이너의 이름과 버전을 리턴 |
String getMimeType(fileName) | 지정한 파일의 MIME 타입을 리턴 |
String getRealPath(path) | 지정한 경로를 웹 어플리케이션 시스템상의 경로로 변경하여 리턴 |
void log(message) | 로그 파일에 message를 기록 |
7. config 객체 - javax.servlet.ServletConfig
- JSP페이지에 대한 설정 정보를 저장하고 있는 객체
- 서블릿이 초기화되는 동안 참조해야할 정보를 전달
- 컨테이너당 1개의 객체가 생성
config 객체의 메소드 | |
Enumeration getInitParameterNames() | 모든 초기화 파라미터 이름을 리턴 |
String getInitParameter(name) | 이름이 name인 초기화 파라미터의 값을 리턴 |
String getServletName() | 서블릿의 이름을 리턴 |
ServletContext getServletContext() | 서블릿 ServletContext 객체를 리턴 |
8. exception 객체 - java.lang.Throwable
- JSP페이지에서 예외가 발생한 경우에 사용되는 객체
exception 객체의 메소드 | |
String getMessage() | 발생된 예외의 메세지를 리턴 |
String toString() | 발생된 예외 클래스명과 메세지를 리턴 |
String printStackTrace() | 예외발생시 예외가 발생한 곳을 추적함 |
9. page 객체 - java.lang.Object page
- JSP페이지를 구현한 자바 클래스 객체
- 웹 컨테이너는 자바만을 스크립트 언어로 지원하기때문에 page객체는 현재 거의 사용되지않음
내장객체의 영역(Scope) : 객체의 유효기간
웹 어플리케이션은 4개의 영역을 가지는데, 객체를 누구와 공유할 것인가를 나타낸다.
1. page 영역
- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 하나의 JSP페이지가 호출
- 웹 브라우저의 요청이 들어오면 이때 단 한개의 페이지만 대응이 된다.
- 따라서 page 영역은 하나의 페이지 내에서만 객체 공유가 가능하다.
- page영역은 pageContext 객체를 사용한다.
2. request 영역
- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응
- 웹 브라우저의 한 번의 요청에 한 개의 페이지만 요청될 수 있고, 같은 request 영역이면 두 개의 페이지가 같은 요청을 공유할 수 있음
- 같은 request영역 -> include 액션 태그, forward 액션 태그를 사용하면 request 객체를 공유하게 됨
- 주로 페이지 모듈화에 사용됨
3. session 영역
- 하나의 웹 브라우저당 1개의 session객체가 생성
- 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유함 -> 주로 회원관리 회원인증에서 사용
4. application 영역
- 하나의 웹 어플리케이션당 1개의 application객체가 생성
- 같은 웹 어플리케이션에 요청되는 페이지들은 같은 객체를 공유함
'Programming > Jsp' 카테고리의 다른 글
[JSP] 소스는 동일하지만 프로젝트명이 다를 때의 파일 경로 (0) | 2020.07.23 |
---|---|
[JSP] 내장(기본) 객체의 속성(Attribute) (0) | 2020.07.23 |
[JSP] JDBC 커넥션풀 설정 소스 / server.xml / web.xml (0) | 2020.07.21 |
[JSP/Servlet] HTTP Redirect / Dispatcher (forward, include) (0) | 2020.07.21 |
[JSP] 표현 언어 EL(Expression Language) 문법 (0) | 2020.07.14 |