💻 Web_Back end/JSP

기본 객체와 영역

개발진스 2023. 4. 7. 12:14
728x90

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 객체를 통한 데이터 출력

 

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 웹프로그래밍

728x90