JSP 지시어와 스크립트 요소

2025. 3. 8. 21:25·개발/JSP
  • 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" %>

 

  •  
    taglib 지시어:
    • 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
'개발/JSP' 카테고리의 다른 글
  • <%@ include %> vs <jsp:include >
  • JSP 액션태그
  • JSP는 어떻게 작동할까?
  • JSP - EL(Expression Language)
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
JSP 지시어와 스크립트 요소
상단으로

티스토리툴바