JSP 페이지의 구성
템플릿 데이터
- 고정된 데이터나 템플릿 컨텐츠
- 텍스트나 XML/HTML 태그를 의미함
JSP 요소 : 동적인 데이터의 추가
- JSP 기술은 템플릿 데이터에 동적인 데이터를 추가하는 강력한 방법을 제공
JSP 문서의 기본구조
JSP 페이지의 구성 요소
스크립트요소(Java 프로그램 코드조각, 동적인 컨텐츠를 만들기 위해 프로그램 작성에 사용되는 요소)
스크립트릿
- JSP 페이지에 삽입되는 Java 코드
- <% ....%>
- <%
String a = "Hello, Java";
%>
<h1><%=a %></h1>
표현식
- 변수가 수식의 값을 출력할 때 JSP 페이지에 삽입하는 식
- 스크립트릿을 사용하지 않고 변수나 수식의 값을 JSP 페이지 실행 결과에 포함시키기 위한 것
- <%=....%>
- String 표현으로 변환되며 세미콜론이 없음
선언
- JSP 페이지에 삽입되는(스크립트릿이나 표현식에서 사용되는) 멤버 변수 또는 메소드 선언문
- <%!.....%>
- <%!
public 리턴타입 메서드이름(파라미터목록) {
메서드 내용;
}
%> - <%!
public int add(int a, int b){
return a + b;
}
%>
지시어
지시어의 의미
JSP 페이지에 대한 전체적 설정 정보를 지시
- JSP 페이지의 번역과 실행 과정에 사용되는 정보
- <%@ 지시어이름 속성1="값1" 속성2="값2"......%>
지시어의 종류
include
- JSP 페이지의 특정 영역에 다른 문서를 포함
- 번역 과정에서 삽입시킬 텍스트나 코드를 지정
page(페이지의 속성을 나타내기 위한 것)
- JSP 페이지에 대한 정보를 지정
- 사용할 스크립트 언어, 상속받을 클래스, import 할 패키지, JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 사용할 에러 페이지 등
- <%@ include file="/jsp/userinfopage.jsp" %>
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.util.Date" %> page지시어의 용도
- 출력 버퍼 관련 속성, 생성시킬 문서의 기본 정보, import할 클래스 등을 설정
- <%@ page contentType="text/html; charset=euc-kr" import="java.sql.*" %>
<%@ page session="false" %>
<%@ page import="package.mypackage.*" errorPage="boof.jsp" %>
<%@ page buffer="20kb" %>
주요 속성
autoFlush
- 클라이언트로 전송된 데이터가 저장되는 장소를 '출력버퍼'라고 하는데 출력버퍼가 다 찼을 경우 자동으로 버퍼를 비울 지의 여부를 나타낸다.
- 'ture일 경우 버퍼가 차게 되면 버퍼를 비워 내용을 클라이언트에 보낸다.
- 'false'일 경우 버퍼가 차게 되면 예외를 발생
- 기본값 : false
contentType
JSP 페이지 실행 결과로 생성되는 문서의 종류(MIME 타입)와 사용될 charset 정보를 설정
MIME는 다양한 종류의 데이터를 인터넷 상에서 송수신할 때 사용되는 통신 규약
- 기본 값은 text/html 이며 text/xml, text/plain등이 있음
- 웹 서버가 데이터를 전송할 때 데이터의 내용에 앞서 종류에 대한 정보를 보냄
- 문자의 인코딩 방법을 지정
- <%@ page contentType="text/html; charset=euc-kr" %>
- 기본값 : text/html
import
- JSP 페이지에서 사용할 자바 클래스를 지정
- JDK 에서 제공하는 클래스를 사용할 때, 사용할 클래스를 명시함
- <%@ page import = "java.util.Date" %>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.util.Date, java.sql.*" %>
language
- JSP 페이지의 스크립트 요소(스크립트릿, 표현식, 선언)에서 사용 할 수 있는 프로그래밍 언어를 설정
- JSP 현재 버전에서는 'java'만 가능
session
- JSP 페이지에서 session 객체를 사용할 지의 여부를 지정
- 'true'일 경우 session 객체를 사용할 수 있고 'false'일 경우 session 객체를 사용할 수 없다
- 기본값 : true
buffer
- JSP 페이지의 출력 버퍼 크기를 지정하며 '8kb', '256kb'와 같이 지정
- 'none'일 경우 출력 버퍼를 사용하지 않는다
- 기본값 : 8kb
info
- JSP 페이지에 대한 설명을 텍스트로 입력할 때 사용
errorPage
- JSP 페이지를 실행하는 동안 에러가 발생할 때 보여줄 페이지가 무엇인지를 설정
isErrorPage
- 현재 페이지가 에러 페이지인지의 여부를 지정
- 'true'이면 현재 페이지를 에러페이지로 사용
- 'false'이면 에러 페이지로 사용 할 수 없다
- 기본값 : false
pageEncoding
- JSP 페이지 자신의 문자 인코딩을 지정
isELIgnored
- 표현 언어를 지원할지의 여부를 설정
- JSP 2.0 부터 새롭게 추가
- 'false'일 경우 지원
- 'true'일 경우 지원 안함
- 기본값 : false
trimDirectiveWhitespaces
- 생성되는 문서에서 공백 문자를 제거할지의 여부를 지정
- JSP 실행 결과에 불필요한 줄바꿈 문자를 제거
- - JSP 페이지에서 템플릿 텍스트가 공백문자로만 구성되면 이것이 보존되기 때문
- 'true'일 경우 공백이 제거
- 기본값 : false
taglib
- 사용자 정의 태그 라이브러리를 지정
- 태그 라이브러리 파일의 위치와 접두어를 지정
- <%@ taglib uri="oracustomtags" prefilx="oracust" %>
액션태그
- 요청을 처리할 때 특별한 기능을 수행하는 것
XML 태그와 같은 모양
- 시작태그와 요소이름, 속성, 몸체, 마감태그
- <jsp:액션태그이름>의 형태
- <%@ page contentType="text/html; charset=euc-kr" %>
<html>
<body>
<jsp:include page="myPage.jsp" />
<body>
</html>
내장 객체(많이 사용되는 기능을 객체 형태로 제공하는 것)
내장 객체(implicit object)의 사용
- 별도의 선언이나 초기화 없이 사용 가능
- 요청 파라미터 읽어오기, 응답 결과 전송하기, 세션 처리하기, 웹 어플리케이션 정보 읽어오기 등
- 예 : request, response, session, application, out, page등
표현 언어
표현 언어의 의미
- JSP 페이지 내부에서 사용되는 간단한 스크립트 언어
스크립트 요소의 사용이 없는 태그 기반 언어
- 내장 객체나 JSTL과 함께 사용할 수 있음
- ${expr}
사용자 정의 태그
- 사용자가 정의하는 태그
- JSP 표준 태그를 확장한 것
JSTL(JSP Standard Tag Library)
- 자주 사용되는 사용자 정의 태그들을 모아 표준화한 태그 라이브러리
- 조건문, 반복문과 같은 프로그랭적 요소를 태그 형태로 사용할 수 있게 함