- JSP 지시어(Directive): JSP 컨테이너에게 JSP 페이지를 처리하는 방법을 지시.
- <%@ page ... %>: 페이지 전체 설정 (contentType, import, errorPage 등).
- <%@ include ... %>: 다른 파일(정적 또는 동적)을 현재 페이지에 포함.
- <%@ taglib ... %>: 커스텀 태그 라이브러리(JSTL 등) 사용 선언.
- JSP 스크립트 요소:
- 스크립틀릿(Scriptlet) (<% ... %>): JSP 페이지 내에서 실행될 Java 코드 블록.
- 표현식(Expression) (<%= ... %>): 변수, 메서드 호출 결과 등을 출력. out.print()와 동일.
- 선언문(Declaration) (<%! ... %>): 서블릿 클래스의 멤버 변수 또는 메서드를 선언.
1. JSP 지시어 (Directives)
지시어는 <%@ ... %> 형태로 사용되며, 페이지 전체에 영향을 미치는 설정을 지정.
page 지시어:
- JSP 페이지의 전반적인 속성을 설정.
- 주요 속성:
- language: JSP 페이지에서 사용할 스크립트 언어 (기본값: java)
- contentType: 응답의 MIME 타입과 문자 인코딩 (예: "text/html; charset=UTF-8")
- pageEncoding: JSP 파일 자체의 문자 인코딩 (예: "UTF-8")
- import: Java 패키지를 import (예: <%@ page import="java.util.*, java.sql.*" %>)
- session: 세션 사용 여부 (true/false, 기본값: true)
- buffer: 출력 버퍼 크기 (예: "8kb")
- autoFlush: 출력 버퍼 자동 flush 여부 (true/false, 기본값: true)
- isThreadSafe: 스레드 안전 여부 (true/false, 기본값: true)
- errorPage: 예외 발생 시 보여줄 에러 페이지 URL
- isErrorPage: 현재 페이지가 에러 페이지인지 여부 (true/false)
- extends: JSP 페이지가 상속할 클래스
- info : 서블릿에 대한 설명을 지정. getServletInfo() 메서드를 통해 얻을 수 있음.
- 예시:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*" errorPage="error.jsp" %>
include 지시어:
- 다른 파일(정적 파일 또는 JSP 파일)의 내용을 현재 JSP 페이지에 포함시킴. 컴파일 타임에 포함됨. 즉, include 지시어를 사용한 파일의 내용이 JSP 파일의 소스 코드 레벨에서 합쳐진 후 컴파일됩니다(하나의 servlet).
- 속성:
- file: 포함할 파일의 경로
- 예시:
Java
<%@ include file="header.jsp" %>
-
- JSP 페이지에서 사용할 커스텀 태그 라이브러리(JSTL 등)를 선언.
- 속성:
- prefix: 태그 라이브러리의 접두어 (예: c, fmt, fn)
- uri: 태그 라이브러리의 URI (Uniform Resource Identifier)
- 예시:
Java
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2. JSP 스크립트 요소 (Scripting Elements)
JSP 스크립트 요소는 JSP 페이지 내에 Java 코드를 삽입하여 동적인 콘텐츠를 생성하는 데 사용.
스크립틀릿 (Scriptlet):
- <% ... %> 형태로 사용되며, 내부에 Java 코드를 작성.
- JSP 컨테이너는 스크립틀릿 안의 코드를 서블릿의 _jspService() 메서드 내에 삽입하여 실행함.
- 지역 변수 선언, 제어문(if, for), 메서드 호출 등 다양한 Java 코드를 사용할 수 있다.
- 예시:
Java
<%
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
%>
표현식 (Expression):
- <%= ... %> 형태로 사용되며, 변수, 메서드 호출 결과, 연산식 등을 출력.
- out.print(...)와 동일한 역할.
- 예시:
Java
<p>합계: <%= sum %></p>
<p>오늘 날짜: <%= new java.util.Date() %></p>
선언문 (Declaration):
- <%! ... %> 형태로 사용되며, 서블릿 클래스의 멤버 변수나 메서드를 선언.
- 선언문에서 정의된 변수와 메서드는 해당 JSP 페이지를 처리하는 서블릿 인스턴스 전체에서 공유.
- 예시:
<%!
private int count = 0; // 멤버 변수
// 메서드
public String getGreeting() {
return "Hello!";
}
%>
'개발 > JSP' 카테고리의 다른 글
JSP 내장객체와 주요 매서드 (0) | 2025.03.08 |
---|---|
<%@ include %> vs <jsp:include > (0) | 2025.03.08 |
JSP 액션태그 (0) | 2025.03.08 |
JSP는 어떻게 작동할까? (0) | 2025.03.08 |
JSP - EL(Expression Language) (0) | 2025.03.05 |