1. 기본 객체와 영역


request : 클라이언트의 요청 정보를 저장한다.


response : 응답 정보를 저장한다.


pageContext : JSP 페이지에 대한 정보를 저장한다.


session : HTTP 세션 정보를 저장한다.


application : 웹 어플리케이션에 대한 정보를 저장한다.


out : JSP 페이지가 생성하는 결과를 출력할 때 사용되는 출력 스트림이다.


config : JSP 페이지에 대한 설정 정보를 저장한다.


page : JSP 페이지를 구현한 자바 클래스 인스턴스이다.


exception : 예외 객체. 에러 페이지에서만 사용된다.


--------------------------------------------------------------------------------------------------------------


2. out 기본 객체


JSP 페이지가 생성하는 모든 내용은 out 기본 객체를 통해서 전송.

웹 브라우저에 데이터를 전송하는 출력 스트림으로서 JSP 페이지가 생성한 데이터를 출력.




복잡한 if-else 사용시 out 기본 객체 사용하면 편리하다.


1) out 사용 전

<%  if (grade > 10) {  %>
<%= gradeStringA  %>
<% } else if (grade > 5) {  %>
<%= gradeStringB  %>
<%  }  %>

2) out 사용 후
<%
    if (grade > 10) {
        out.println(gradeStringA);
    } else if (grade > 5) {
        out.println(gradeStringB);
    }
%>


out 기본 객체 주요 메서드

출력 메서드
print() : 데이터를 출력한다.
println() : 데이터를 출력하고, \r\n(또는 \n)을 출력한다.
newLine() : \r\n(또는 \n)을 출력한다. (OS에 따른 자동 줄바꿈 기능)

버퍼 관련 메서드
getBufferSize() : 버퍼의 크기를 구한다.
getRemaining() : 현재 버퍼의 남은 크기를 구한다.
clear() : 버퍼의 내용을 비운다. 만약 버퍼가 이미 플러시 되었다면 IOException을 발생시킨다.
clearBuffer() : 버퍼의 내용을 비운다. 버퍼를 플러시 한 경우에도 IOException을 발생시키지 않는다.
flush() : 버퍼를 플러시 한다.
isAutoFlush() : 버퍼가 다 찼을 때 자동으로 플러시 할 경우 true를 리턴한다.


--------------------------------------------------------------------------------------------------------------


3. pageContext 기본 객체

다른 기본 객체에 대한 접근 메서드 제공. (JSP보다는 서블릿에서 주로 활용)


getRequest() : request 기본 객체를 구한다.

getResponse() : response 기본 객체를 구한다.

getSession() : session 기본 객체를 구한다.

getServletContext() : application 기본 객체를 구한다.

getServletConfig() : config 기본 객체를 구한다.

getOut() : out 기본 객체를 구한다.

getException() : exception 기본 객체를 구한다.

getPage() : page 기본 객체를 구한다.



--------------------------------------------------------------------------------------------------------------


4. application 기본 객체


초기화 파라미터 설정: web.xml 파일 이용


<context-param>

    <description>파라미터 설명(필수 아님)</description>

    <param-name>파라미터이름</param-name>

    <param-value>파라미터값</param-value>

</context-param>



application 기본 객체의 초기화 파라미터 관련 기능

getInitParameter(String name) : 이름이 name인 웹 어플리케이션 초기화 파라미터의 값을 읽어온다. 존재하지 않을 경우 null을 리턴한다.
getInitParameterNames() : 웹 어플리케이션 초기화 파라미터의 이름 목록을 리턴한다.


application 기본 객체: 자원 구하기


자원 접근 메서드

getRealPath(String path) : 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원의 시스템상에서의 자원 경로를 리턴한다. (절대경로값 리턴)

getResource(String path) : 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원에 접근할 수 있는 URL 객체를 리턴한다.

getResourceAsStream(String path) : 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원으로부터 데이터를 읽어올 수 있는 InputStream을 리턴한다.


p129 참조



--------------------------------------------------------------------------------------------------------------


5. 기본 객체와 영역(scope)

웹 어플리케이션의 4가지 영역(scope)
- PAGE 영역 : 하나의 JSP 페이지를 처리할 때 사용되는 영역
- REQUEST 영역 : 하나의 HTTP 요청을 처리할 때 사용되는 영역
- SESSION 영역 : 하나의 웹 브라우저와 관련된 영역
- APPLICATION 영역 : 하나의 웹 어플리케이션과 관련된 영역




--------------------------------------------------------------------------------------------------------------


6. 속성(Attribute)


속성 기능 제공 기본 객체

- pageContext, request, session, application


속성 관련 메서드

setAttribute(String name,Object value) : 이름이 name인 속성의 값을 value로 지정한다.

getAttribute(String name) : 이름이 name인 속성의 값을 구한다. 지정한 이름의 속성이 존재하지 않을 경우 null을 리턴한다.

removeAttribute(String name) : 이름이 name인 속성을 삭제한다.

getAttributeNames() : 속성의 이름 목록을 구한다. (pageContext 기본 객체는 이 메서드를 제공하지 않는다.)




속성의 활용

pageContext : (한번의 요청을 처리하는) 하나의 JSP 페이지 내에서 공유될 값을 저장한다.

request : 한번의 요청을 처리하는 데 사용되는 모든 JSP 페이지에서 공유될 값을 저장한다.

session : 한 사용자와 관련된 정보를 JSP 들이 공유하기 위해서 사용된다.

application : 모든 사용자와 관련해서 공유할 정보를 저장한다.



1) INPUT으로 name값과 value값을 입력받아 setApplicationAttribute.jsp으로 넘긴다.

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="setApplicationAttribute.jsp" method="get">

<input type="text" name="name" />

<input type="text" name="value" />

<input type="submit" />

</form>

</body>

</html>


2) setApplicationAttribute.jsp 

입력받은 name값과 value값을 application 영역에 set을 한다.

body 영역에는 name이나 value값이 null 값이 오면 [application 기본 객체의 속성 설정 안함],

입력값이 오면 해당 입력값을 출력하는 내용을 보여준다.

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>

<%request.setCharacterEncoding("UTF-8");%> 

<%

String name = request.getParameter("name");

String value = request.getParameter("value");

if(name != "" && value != "") {

application.setAttribute(name, value);

}

%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>속성 지정</title>

</head>

<body>

<%

if (name != "" && value != "") {%>

application 기본 객체의 속성 설정:

<%= name %> = <%= value %>

<% } 

else {

%>

application 기본 객체의 속성 설정 안함

<%}%>

</body>

</html>



3) viewApplicationAttribute.jsp 

application 영역을 보여주는 jsp. 위에서 입력한 값들도 application 영역에 set 된 것을 확인할 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%request.setCharacterEncoding("UTF-8");%> 

<%@ page import = "java.util.Enumeration" %>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>기본 객체 속성 보기</title>

</head>

<body>

<%

Enumeration<String> attrEnum = application.getAttributeNames();

while(attrEnum.hasMoreElements()) {

String name = attrEnum.nextElement();

Object value = application.getAttribute(name);

%>

application 속성 :<strong><%= name %> = <%= value %></strong><br />

<%

}

%>

</body>

</html>




결과) application 영역을 보면 입력했던 값들도 속성에 들어있는 것을 확인할 수 있다.


application 속성 :org.apache.tomcat.JarScanner = org.apache.tomcat.util.scan.StandardJarScanner@72145782
application 속성 :꾸엑 = 꼬앙꾸
application 속성 :111 = 222
application 속성 :arrt1 = value1
application 속성 :속성이름 = 속성값
application 속성 :네임 = 밸류값
application 속성 :하나 = 둘






Posted by netyhobby
,