목요일, 3월 28
Shadow

#007 기본 객체와 영역

1. out 객체
2. pageContext 객체
3. application 객체
4. exception 객체
를 공부한다.

2. out 객체
– JSP페이지가 생성하는 모든 내용은 out 본객체를 통해 전송된다 .
웹 브라우저에 데이터를 전송하는 출력 스티림으로서 JSP 페이지가 생성한 데이터를 출력한다.
<%
out.println(“<html”>);
out.println(“<head”>);
%>
– out 기본 객체의 출력 메서드
print() : 데이터를 출력한다.
println() : 데이터를 출력하고 \r\n을 출력한다.
newLine() : \r\n을 출력한다.
– out 기본 객체와 버퍼의 관계
page 디렉티브의 버퍼 속성을 사용하여 jsp페이지의 버퍼 크기를 조절할수 있다
<%@ page buffer=”16kb” %>
out 기본 객체가 내부적으로 내부적으로 사용하는 버퍼의 크기를 16킬로바이트가 된다.
: 버퍼와 관련된 메소드들
getBufferSize() : 버퍼의 크기를 구한다.
getRemaing() : 현재 퍼어의 남은 크기를 구한다.
clear() : 버퍼의 내용을 비운다. 만약 버퍼가 이미 플러시 되었다면 IOException을 발생시킨다.
clearBuffer() : 버퍼의 내용을 비운다. 다만 버퍼가 플러시 한 경우에도 IOException을 발생 시키지 않는다.
flush() : 버퍼를 플러시 한다.
isAutoFlush() : 버퍼가 다 찼을때 자동으로 플러시 할 경우 true를 리턴한다.

<%@ page buffer=”8kb” autoFlush =”flase” %>
버퍼크기 : <%= out.getBuferSize() %>
남은크기 : <%= out.getRemaing() %>
auto flush  : <%= out.getisAutoFlush() %>

03. pageContext 객체
– 하나의 JSP페이지와 1:1 매핑되는 객체로서,
다른 기본객체 구하기, 속성처리, 페이지의 흐름제어하기, 에러 데이터 구하기와 같은 기능을 제공한다.
3.1 기본 객체 접근 메소드
getRequest() : request 객체를 구한다.
getResponse() : response 기본 객체를 구한다.
getSession() : session 객체를 구한다.
getServletContext() : application 객체를 구한다.
getSevletConfig() : config 객체를 구한다.
getCut() : cut 객체를 구한다.
getException() : exception 객체를 구한다.
getPage() : page 객체를 구한다.

* pageContext를 이용해서 request 기본 객체와 out 기본 객체를 사용하는 예
<%
HttpservletRequest httpRequest =
(HttpServletRequset)pageContext.getRequest();
%>
—> JSP 페이지가 HTTP 요청을 처리

04. application 객체
웹 어플리케이션과 관련된 객체로서 특정 웹 어플리케이션에 포함된 모든 JSP 페이지는 하나의 application 객체를 공유 한다. 웹어플리케이션 전반에 걸쳐서 사용되는 정보를 담고 있으며 이 객체를 사용하여 초기 설정 정보를 읽어 올수 있으며 서버 정보를 읽어 올수있다. 또한 웹 어플리케이션이 제공하는 자원을 읽어 올수 있다.

4.1 웹 어플리케잇녀 초기화 파라미터 읽어오기
<context-param>

<description>파라미터 설명</description>
<param-name> 파라미터 이름 </param-name>
<param-value> 파라미터 값 </param-value>
</context-param>

web.xml파일 안에 작성한다.
<context-param>

<description>로깅 여부</description>
<param-name> logEnabled</param-name>
<param-value> true </param-value>
</context-param>

* application 기본 객체의 웹 어플리케이션 초기화 파라미터 관련 메서드
getInitParameer(String name) : 이름이 name인 웹 어플리케이션 초기화 파라미터 값을 읽어 온다.
getInitParameterNames() : 웹 어플리케이션 초기화 파라미터의 이름 목록을 리턴한다.

<% Enumeration initParamEnum = appplication.getInitParameterNames();  %>

<%= application.getInitParameter(initParamNmae)%>

4.2 서버정보 읽어오기
getServerInfo() : 서버 정보를 구한다.
getMajorVersion() : 서버가 지원하는 서블릿 규약의 메이저 버전을 리턴한다.
getMinorVersion() : 서버가 지원하는 서블릿 규약의 마이너 버전을 리턴한다.

서버정보 : <%= appliocation.getServerInfo() %>
서블릿 규약 메이저 버전 : <%= application.getMajorVersion()%>
서블릿 규약 미이너 버전 : <%= application.getMinorVersion()%>

4.3 로그 메시지 기록하기
: 웹 컨테이너가 사용하는 로그 파일에 로그 메시지를 기록할 수 있도록 메서드를 제공한다.
log(String msg) : 로그 메시지를 기록한다.
log(String msg, Throwable throwable) : 로그 메시지를 기록한다. 예외 정보도 함께 로그 파일에 기록한다.
<%
application.log(“로그 메시지 기록);
%>

— JSP 페이지가 제공하는 log() 메소드를 사용 가능
<%
log(로그 메시지 기록2);
%>

4.4 웹 어플리케이션 자원 구하기
getRealPath(String path) : 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원의 시스템상에서 자원 경로를 리턴한다.
getResource(String path) : 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원에 접근 할수 있는 URL객체를 리턴한다.
getResourceAsStream(String path) : 웹 어플리케이션내에서 지정한 경로에 해당하는 자원으로부터 데이터를 읽어 올수 있는 InputStream을 리턴한다.

05. JSP 기본객체와 영역
page 영역 : 하나의 JSP페이지를 처라할때 사용되는 영역
– 한번의 클라이언트 요청에 대해서 하나의 JSP 페이지를 범위로 갖는다. 즉, 웹 브라우저의 요청이 들어오면 JSP 페이지를 실행하게 되는데, 이때 JSP페이지를 실행하는 범위가 하나의 page  영역이 된다.

Request 영역 : 하나의 HTTP 요청을 처리핢떄 사용되는 영역
– 웹 브라우저의 한번의 요청과 관련이 있으며 웹 브라우저의 주소에 URL을 입력하거나 또는 링크를 클릭해서 페이지를 이동할때, 웹 브라우저가 웹 서버에 전송하는 요청이 하나의 request 영역이 된다. 웹 브라이저가 요청을 보낼때마다 매번 새로은 request 영역이 생성된다. Request 영역은 하나의 요청을 처리하는데 사용된는 모든 JSP 페이지를 포함된다.

Session 영역 : 하나의 웹 브라우저와 관련된 영역
– 하나의 웹 브라우저와 곤련된 영역으로 세션이 생성되념ㄴ 하나의 웹 브라우저와 관련된 모든 요청은 하나의 세션영역에 포함된다.

Application 영역 : 하나의 웹 어플리케이션과 관련된 영역
– 하나의 웹 어플리케이션과 관련된 전체 영역을 호함ㅎ나다. 예를들어 웹 어플리케이션을 사용하는 모든 요쳥과 브라우저의 세션은 모두 하나의 애플리케이션영역에 속한다.

06. 기본 객체의 속성 사용하기
속성은 각각의 기본 객체가 존재하는 동안 사용될수 있으며, JSP 페이지 사이에서 정보를 족 받거나 공유 하기 위한 목적으로 사용된다.

setAttribute(String name, Object value) : 이름이 name인 속석의 값을 value로 저장한다
getAttribute(String name) : 이름이 name인 속성의 값을 구한다.
removeAttribute(String name) : 이름이 name인 속성을 삭제한다.
getAttributeNames() : 속성의 이름 목록을 구한다.

<%
String name = request.getParameter(“name”);
String name = request.getParameter(“value”);

application.setAttribute(name, value);
%>

<%
Enumeration attrEnum = application.getAttributeNames();
while(attrEnum.hasMoreElements()){
String name = (Stirng)attrEnum.nextElement();
Object value = application.getAtribute(name);
%>

application 속성 : <%=name%> = <%=value%>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.