1. 디렉티브(Directive)

JSP 페이지에 대한 설정 정보를 지정


디렉티브 구문

<%@ 디렉티브이름 속성1="값1" 속성2="값2" ... %>

예) <%@ page contentType = "text/html; charset=utf-8" %>


제공 디렉티브

(1) page : JSP 페이지에 대한 정보를 지정

문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 정보 지정

(2) taglib : JSP 페이지에서 사용할 태그 라이브러리를 지정

(3) include : JSP 페이지의 특정 영역에 다른 문서를 포함


(1) page 디렉티브

JSP 페이지에 대한 정보를 입력

- JSP가 생성할 문서의 타입, 사용할 클래스, 버퍼 여부, 세션 여부


JSP 디렉티브의 작성 예

<%@ page contentType="text/html; charset=utf-8" %>

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


1) contentType 속성과 charset
JSP 페이지가 생성할 문서의 타입을 지정
contentType 속성 형식

TYPE 
or
TYPE; charset=캐릭터 셋 

TYPE: 생성할 문서의 MIME 타입
text/html, text/xml, text/plain 등
캐릭터 셋 - 응답 문서의 문자 인코딩 지정
EUC-KR, UTF-8, ISO-8859-1 등
대소문자 구별하지 않음.

설정 예
<%@ page contentType="text/html" %>  또는
<%@ page contentType="text/html; charset=utf-8" %>

<%@ page language="javacontentType="text/htmlcharset=UTF-8pageEncoding="UTF-8"%>

서버는 pageEncoding을 확인, 브라우저는 charset을 확인하여 UTF-8로 처리한다.


2) import 속성

JSP 페이지에서 사용할 클래스(인터페이스) 지정

import 속성의 사용 예


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

<%@ page import = "java.util.Calendar, java.util.Date" %>

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


import 한 클래스는 단순 클래스 이름으로 사용 가능


<%@ page contentType = "text/html; charset=utf-8" %>

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

<html>

<head><title>Calendar 클래스 사용</title></head>

<body>

<%

    Date date = new Date();

    java.util.Calendar cal = java.util.Calendar.getInstance();

%>


3) trimDirectiveWhitespaces 속성

브라우저에서 소스 보기 할 때 빈 공간으로 남았던 jsp 코드가 들어가있던 자리들을 잘라낸다.


<%@ page contentType="text/html; charset=euc-kr" %>

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

<%@ page trimDirectiveWhitespaces="true" %>

<%

        Date now = new Date();

%>

<html>

<head><title>현재 시간</title></head>

<body>

     현재 시각: 

     <%= now %>

</body>

</html>


4) JSP 페이지의 인코딩과 pageEncoding 속성
charset=utf-8 : 브라우저에게 알려줄 캐릭터 셋 설정
pageEncoding=“euc-kr” : 웹컨테이너가 현재 파일을 읽어올 때 캐릭터 셋 설정(설정값 없으면 charset 값으로 셋팅)

<%@ page contentType="text/html; charset=utf-8" %>
<%@ page pageEncoding="euc-kr" %>
<%@ page import="java.util.Date" %>
<%
     Date now = new Date();
%>
<html>
<head><title>현재 시간</title></head>
<body>
     현재 시각: 
     <%= now %>
</body>
</html>


2. 스크립트 요소


요청을 처리하는 데 필요한 코드를 실행

- 실시간으로 문서의 내용을 생성하기 위해 사용되는 것


동적으로 응답 결과를 생성하기 위해 사용

- 사용자가 폼에 입력한 정보를 데이터베이스에 저장할 수 있음

- 데이터베이스로부터 게시글 목록을 읽어와 출력할 수도 있음

- 자바가 제공하는 다양한 기능들도 사용할 수 있음


스크립트 요소 세 가지

(1) 스크립트릿(Scriptlet) : 자바 코드 실행

(2) 표현식(Expression) : 값을 출력

(3) 선언부(Declaration) : 자바 메서드(함수)를 정의


(1) 스크립트릿(Scriptlet)

- 자바 코드를 실행할 때 사용되는 코드의 블록

- 스크립트릿의 구조

<%

     자바코드1;

     자바코드2;

     ....

%>

- 예제 코드
<%@ page contentType = "text/html; charset=utf-8" %>
<%
    int sum = 0;
    for (int i = 1 ; i <= 10 ; i++) {
        sum = sum + i;
    }
%>
1 부터 10까지의 합은 <%= sum %> 입니다.

(2) 표현식(Expression)
- 값을 출력 결과에 포함시키고자 할 때 사용
- 표현식 구문
<%= 값 %>

- 표현식 예

<%= 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 %>

<%

    int sum = 0;

    for (int i = 1 ; i <= 10 ; i++) {

        sum = sum + i;

    }

%>

1 부터 10까지의 합은 <%= sum %> 입니다.


(3) 선언부(Declaration)

스크립트릿이나 표현식에서 사용할 수 있는 함수를 작성할 때 사용

- 선언부 형식

<%!

    public 리턴타입 메서드이름(파라미터목록) {

        자바코드1;

        자바코드2;

        ...

        자바코드n;

        return 값;

    }

%>


선언부와 파라미터 값 전달
<%@ page contentType = "text/html; charset=utf-8" %>
<%!
    public int multiply(int a , int b) {
        int c = a * b;
        return c;
    }
%>
<html>
<head><title>선언부를 사용한 두 정수값의 곱</title></head>
<body>

     10 * 25 = <%= multiply(10, 25) %>


Posted by netyhobby
,