1. 기본객체
JSP가 제공하는 기본 객체
기본 객체 | 실제 타입 | 설명 |
request | javax.servlet.http.HttpServletRequest 또는 javax.servlet.ServletRequest |
클라이언트의 요청 정보를 저장한다. |
response | javax.servlet.http.HttpServletResponse 또는 javax.servlet.ServletResponse |
응답 정보를 저장한다. |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보를 저장한다. |
session | javax.servlet.http.HttpSession | HTTP 세션 정보를 저장한다. |
application | javax.servlet.ServletContext | 웹 어플리케이션에 대한 정보를 저장한다. |
out | javax.servlet.jsp.JspWriter | JSP 페이지가 생성하는 결과를 출력할 때 사용되는 출력 스트림이다. |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설정 정보를 저장한다. |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스 인스턴스이다. |
exception | java.lang.Throwable | 예외 객체. 에러 페이지에서만 사용된다. |
2. out 기본 객체
JSP 페이지가 생성하는 내용은 out 기본 객체를 통해서 전송된다.
out 기본 객체는 웹브라우저에 데이터를 전송하는 출력 스트림으로 JSP페이지가 생성한 데이터를 출력한다.
out 객체는 언제 사용하는가?
out 객체는 복잡한 코드를 간단하게 표시할 수 있다.
예를 들어 if-else구문을 보면
<% if ( grade > 10 ) { %>
<%= gradeStringA %>
<% } else if ( grade > 5) { %>
<%= gradeStringB %>
<% } %>
위의 모드의 경우 if-else 블록과 태그 때문에 코드가 복잡해지는데, out객체를 사용하면 다음과 같이 변경할 수 있다.
<%
if ( grade > 10 ) {
out.println(gradeStringA);
} else if ( grade > 5)
out.println(gradeStringB);
} %>
표현식과 스크립트릿이 복잡하게 섞여 있을 때보다 훨씬 간단해지지만, out 기본객체는 복잡한 출력코드를 간단하게 만드는 경우가 아니면 사용하지 않는것이 좋다.
2-1. out 기본 객체의 출력 메서드
out 기본 객체의 출력 메서드는 세가지가 있다.
1) print() : 데이터 출력
2) println() : 데이터를 출력하고, \r\n(또는 \n)을 출력
3) newLine() : \r\n(또는 \n)을 출력
print(), println() 메서드의 기본값은 String이고, 출력할수 있는 값은 boolean, char, char[], double, float, int, long이다.
2-2. out 기본 객체와 버퍼의 관계
out 기본 객체의 버퍼 관련 메서드
메서드 | 리턴 타입 | 설명 |
getBufferSize() | int | 버퍼의 크기를 구한다. |
getRemaining() | int | 현재 버퍼의 남은 크기를 구한다. |
clear() | void | 버퍼의 내용을 비운다. 만약 버퍼가 이미 플러시 되었다면 IOException을 발생시킨다. |
clearBuffer() | void | 버퍼의 내용을 비운다. clear() 메서드와 달리 버퍼를 플러시 한 경우에도 IOException을 발생시키지 않는다 |
flush() | void | 버퍼를 플러시 한다. |
isAutoFlush() | boolean | 버퍼가 다 찼을 때 자동으로 플러시 할 경우 true를 리턴한다. |
3. pageContext 기본 객체
pageConetxt 기본 객체는 하나의 JSP페이지와 1:1로 매핑되는 객체로서, 다른 기본 객체에 대한 접근 메서드 제공한다.
pageConetxt가 제공하는 기본 객체 접근 메서드
메서드 | 리턴 타입 | 설명 |
getRequest() | ServletRequest | request 기본 객체를 구한다. |
getResponse() | ServletResponse | response 기본 객체를 구한다. |
getSession() | HttpSession | session 기본 객체를 구한다. |
getServletContext() | ServletContext | application 기본 객체를 구한다. |
getServletConfig() | ServletConfig | config 기본 객체를 구한다. |
getOut() | JspWriter | out 기본 객체를 구한다. |
getException() | Exception | exception 기본 객체를 구한다. |
getPage() | Object | page 기본 객체를 구한다. |
pageContext를 이용해서 request 기본 객체와 out 기본 객체를 사용하는 예
<%
HttpServletRequest httpRequest =
(HttpServletRequest)pageContext.getRequest();
%>
request 기본 객체와 pageContext.getRequest()의 동일여부
<%= request == httpRequest %>
<br>
pageContext.getOut()메서드를 사용한 데이터 출력:
<% pageContext.getOut().println("안녕하세요!"); %>
해당 예제는 request기본 객체와 pageContext.getRequest()메서드로 구한 객체가 같은 객체임을 보여준다.
4. application 기본 객체
application 기본 객체는 웹 어플리케이션 전반에 걸쳐서 사용되는 정보를 담고 있다.
application 기본 객체를 사용하여 초기 설정 정보를 읽어올 수 있으며, 서버 정보를 읽어올 수 있다, 또한 웹 어플리케이션이 제공하는 자원을 읽어올 수도 있다.
4-1. 웹 어플리케이션 초기화 파라미터 읽어오기
<context-param>
<description>파라미터 설명(필수 아님)</description>
<param-name>파라미터이름</param-name>
<param-value>파라미터값</param-value>
</context-param>
web.xml 파일에 위와 같이 초기화 파라미터를 추가하면, application기본 객체에서 제공하는 메서드를 사용하여 초기화 파라미터를 JSP 페이지에서 사용할 수 있게 된다.
application 기본 객체의 웹 어플리케이션 초기화 파라미터 관련 메서드
getInitParameter(String name) : 이름이 name인 웹 어플리케이션 초기화 파라미터의 값을 읽어온다. 존재하지 않을 경우 null을 리턴한다.
getInitParameterNames() : 웹 어플리케이션 초기화 파라미터의 이름 목록을 리턴한다.
해당 메서드를 사용하려면 web.xml에 초기화 파라미터를 추가해야한다.
<context-param>
<description>로깅 여부</description>
<param-name>logEnabled</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>디버깅 레벨</description>
<param-name>debugLevel</param-name>
<param-value>5</param-value>
</context-param>
4-2. 서버정보 읽어오기
application 기본 객체가 제공하는 서버 정보 관련 메서드
메소드 | 리턴타입 | 설명 |
getServerInfo() | String | 서버 정보를 구함 |
getMajorVersion() | String | 서버가 지원하는 서블릿 규약의 메이저 버전을 리턴. 버전의 정수 부분을 리턴 |
getMinorVersion() | String | 서버가 지원하는 서블릿 규약의 마이너 버전을 리턴. 버전의 소수 부분을 리턴 |
4-2. 로그 메세지 기록하기
application 기본 객체가 제공하는 로그기록 메서드
메소드 | 리턴타입 | 설명 |
log(String msg) | void | 로그 메시지 msg를 기록 |
log(String msg,Throwable throwable) | void | 로그메시지 msg를 기록. 익셉션 정보도 함께 로그 파일에 기록 |
usApplicaiotionLog.jsp
<%
application.log("로그메시지 기록");
%>
<p>
<%
log("로그 메세지 기록2");
%>
참고자료 : 최범균의 JSP 웹프로그래밍
'💻 Web_Back end > JSP' 카테고리의 다른 글
JSP welcome 파일 지정하기 (0) | 2023.04.30 |
---|---|
JSP 페이지 예외 처리하기 (0) | 2023.04.29 |
JSP 스크립트 요소 기능 (0) | 2023.04.27 |
JSP 정의와 구성요소 (0) | 2023.04.27 |
페이지 모듈화와 요청 흐름 제어 (0) | 2023.04.07 |