주석
- <!-- -->
- 이는 소스코드를 업로드 했을 때, 소스코드에도 나타나는 주석입니다.
- <%-- --%>
- 위의 주석과 달리 소스코드를 업로드 했을 때, 나타나지 않는 주석입니다.
JSP 요소의 종류
1. 지시어
- 사용법: <%@ 지시할 내용 %>
- 지시어는 페이지의 속성, 정보 등을 선언하는 역할을 합니다.
- 컨테이너가 해당 페이지를 어떻게 처리해야 하는지에 대한 내용을 담고 있습니다.
- 지시어는 크게 3종류로 나눠볼 수 있습니다.
- page 지시어
- include 지시어
- taglib 지시어
page 지시어

JSP 파일을 생성하면 위의 예제와 같은 코드들이 기본적으로 나타납니다.
여기서 최상단에 위치한 코드가 page 지시어입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
- langauge
- 사용할 스크립트 언어를 지정해주는 속성입니다.
- 기본 설정은 위와 같이 java입니다.
- contentType
- 현재 JSP 페이지 내용의 유형을 정하는 옵션입니다.
- 내부에 charset을 통해 캐릭터셋을 지정합니다.
- pageEncoding
- contentType의 charset과 동일한 기능을 합니다.
- contentType에 사용된 charset은 클라이언트가 받아볼 페이지에 대한 캐릭터셋 형식을 뜻합니다.
- pageEncoding은 해당 JSP 파일의 인코딩 형식을 설정합니다.
- import
- JSP 파일 내에서 외부 Java 패키지 혹은 class를 불러올 때 사용합니다.
- errorPage
- 현재 JSP 페이지에서 에러가 발생할 경우에 호출할 페이지를 지정합니다.
- isErrorPage
- 해당 페이지가 일반적인 페이지인지 예외를 처리하는 페이지인지를 설정합니다.
- 기본값은 false이고, 예외를 처리하는 페이지라면 true로 설정합니다.
include 지시어

<%@ include file = "test.jsp" %>
- 공통적으로 포함될 내용을 가진 HTML이나 JSP 파일을 해당 파일에 삽입하는 기능을 합니다.
- include로 포함시킨 JSP 파일은 따로 servlet 파일로 변환이 이루어지는 것이 아닌 변환은 딱 한 번만 이루어지게 됩니다.
taglib 지시어
<%@ taglib prefix = "mytag" uri = "/META-INF/mytag.tld" %>
- 커스텀 태그 라이브러리를 JSP 파일에서 사용하기 위한 지시어입니다.
- 속성은 uri와 prefix로 구성되어 있습니다.
- prefix
- - 해당 커스텀 태그를 사용할 이름을 선언합니다.
- uri
- - 커스텀 태그 TLD 파일의 위치를 선언합니다.
2. 선언부
<%! 선언부의 내용 %>
- 전역 변수 선언 및 메소드 선언에 사용됩니다.
- JSP 페이지 어느 곳에서든 변수의 참조가 가능합니다.
- 선언부에서 선언된 변수는 JSP 페이지가 servlet으로 변환될 때, servlet의 멤버 변수가 됩니다.
3. 표현식
<%= 값 %>
- 어떤 값을 출력 결과에 포함하고자 할 때 사용합니다.
- 숫자, 문자열, 변수 등의 값을 사용할 수 있습니다.
예제
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<%= "Hello World" %>
</body>
</html>
4. 스크립틀릿
<% Java 코드 %>
- Java 코드를 기술할 수 있는 공간입니다.
- out.println()을 통해서 출력을 합니다.
- 브라우저를 통해 확인해보면 이 부분은 확인할 수 없습니다.
예제
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add</title>
</head>
<body>
<%
int num = 2 + 3;
%>
2 + 3 = <%= num %>
</body>
</html>