▶ 1. HTML 주석
<!-- HTML주석입니다 -->
▶ 2. JSP 주석
<%-- JSP주석입니다 --%>
▶ 3. 자바 스타일 주석
<%
/* 여러 줄을 사용할 때의
자바주석입니다 */
%>
<%
//한줄을 사용할 때의 자바주석입니다
%>
<%@ ... %>
와 같은 형식으로 표현되며, JSP를 실행할 컨테이너에서 해당 페이지를 어떻게 처리할 것인가에 대한 설정 정보들을 지정해주는데 사용
<page 지시어> <include 지시어> <taglib 지시어> 3가지로 나누어짐
▶ 1. page 지시어
<% page 속성1="값1" 속성2="값2" 속성3="값3"...%>
속성 | 사용법 | 기본값 | 설명 |
---|---|---|---|
language | language="java" | java | 스크립트 요소에서 사용할 언어 설정 |
extends | extends="클래스명" | 없음 | 상속받을 클래스를 설정 |
import | import="패키지.클래스명" | 없음 | import할 패키지.클래스 설정 |
session | session="true" | true | HttpSession 사용 여부를 설정 |
buffer | buffer="16kb" | 8kb | JSP 페이지의 출력 버퍼 크기를 설정 |
autoFlush | autoFlush="true" | true | 출력 버퍼가 다 찼을 경우 처리 방법을 설정 |
isThreadSafe | isThreadSafe="true" | true | 다중 스레드의 동시 실행 여부를 설정 |
info | info="페이지 설명" | 없음 | 페이지 설명 |
errorPage | errorPage="에러 페이지.jsp | 없음 | 에러 페이지로 사용할 페이지를 지정 |
contentType | contentType="text/html" | text/html;charset=IOS-8859-1 | JSP 페이지가 생설할 문서의 타입을 지정 |
isErrorPage | isErrorPage="false" | false | 현재 페이지를 에러 페이지로 지정 |
pageEncoding | pageEncoding="euc-kr" | ISO-8859-1 | 현재 페이지의 문서 인코딩 타입 설정 |
1-1. language 속성
<%@ page language = "java" %>
1-2. extends 속성
<%@ page extends = "javax.servlet.jsp.HttpJspBase" %>
1-3. import 속성
<%@ page import = "java.io*, java.util.ArrayList" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<!--<h1>의 SimpleDateFormat을 사용하기 위해서 java.text.SimpleDateFormat 클래스를 import 함 -->
<%@page import="java.text.SimpleDateFormat"%>
<!-- <h1>에서 Date 클래스를 사용하기 위해 java.util.*를 import 함. import 순서는 상관없음-->
<%@page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Contetent-Type" content="text/html; charset=UTF-8">
<title>import 속성 테스트</title>
</head>
<body>
<h1>
<!-- Date클래스의 생성자를 사용해 Date 객체를 생성하고 SimpleDate Format 클래스의 format 메소드를 사용해서 표시 -->
현재 시간은 <%=new SimpleDateFormat().format(new Date())%> 입니다
</h1>
</body>
</html>
1-4. session 속성
<%@ page session = "true" %>
1-5. buffer 속성
<%@ page buffer = "16kb" %>
1-6. autoFlush 속성
<%@ page autoFlush = "true" %>
1-7. isThreadSafe 속성
<%@ page isThreadSafe = "true" %>
1-8. info 속성
<%@ page info = "이 페이지는 이클립스로 만들어진 페이지 입니다." %>
1-9. errorPage 속성
<%@ page errorPage = "error/errer.jsp" %>
1-10. contentType 속성
<%@ page contentType = "text/html" %>
<%@ page contentType = "text/html;charset=euc-kr"%>
문자셋(character set)의 인코딩 방식을 사용해 추가 가능
1-11. isErrorPage 속성
<%@ page isErrorPage = "true" %>
1-12. pageEncoding 속성
<%@ page pageEncoding = "euc-kr" %>
문자셋은 보통 지시자 영역에서 contentType 속성을 지정할 때 한 번에 지정해서 사용
<%@ page contentType = "text/html; charset = euc-kr" %>
▶ 2. include 지시어
<%@ include file = "header.jsp" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 테스트</title>
</head>
<body>
<!-- include 는 위치와 갯수에 영향을 받음 -->
<%@ include file="header.jsp"%> <!-- footer 밑에 작성하면 footer 밑으로 위치됨 -->
<h1>includeTest.jsp 파일입니다</h1>
<%@ include file="footer.jsp"%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>header.jsp 파일의 내용이 들어가는 곳입니다</h3>
<hr>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<hr>
<h3>footer.jsp 파일의 내용이 들어가는 곳입니다</h3>
</body>
</html>
▶ taglib 지시어
▶ 선언문(Delaration)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--선언부에 정의되어 있는 getStr()메소드를 호출하는 부분 --%>
<h1><%=getStr() %></h1>
<%--str변수 값을 생성하는 getStr()메소드를 정의하는 부분 --%>
<%!
private String getStr() {
str += " 테스트입니다.";
return str;
}
//str 변수가 선언되었기 때문에 jsp페이지 전체에서 인식됨
private String str = "선언문";
%>
▶ 스크립틀릿(Scriptlet)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.Calendar"%>
<!DOCTYPE html>
<%--스크립틀릿 부분에서 현재 시간과 분, 초, 값을 로컬변수에 할당하는 부분 --%>
<%
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
%>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv = "refresh" content = "1"> <%--html 태그 : 1초마다 업데이트 --%>
<title>Scriptlet Test</title>
</head>
<body>
<%--스크립틀릿 부분에서 구한 현재 시간 값들을 화면에 출력하는 부분 --%>
<h1>
현재 시간은
<%=hour%>시
<%=minute%>분
<%=second%>초 입니다
</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar"%>
<%
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scriptlet Test2</title>
</head>
<body>
<h1>
현재시간
<%=hour%>시
<%=minute%>분
<%=second%>초
</h1>
<%
if (hour >= 12) {
%>
<h2>오후입니다</h2>
<%
} else {
%>
<h2>오전입니다</h2>
<%
}
%>
</body>
</html>
▶ 표현식(Ecpression)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--합을 구하는 sum()메소드 선언문 영역에 정의 --%>
<%!public int sum() {
int total = 0;
for (int i = 1; i <= 100; i++) {
total += i;
}
return total;
}%>
<%--스크립틀릿 영역에서 아래와 같은 문장을 str이라는 변수에 할당 --%>
<%
String str = "1부터 100까지의 합";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Expression Test</title>
</head>
<body>
<%--str 변수의 값과 sum() 메소드의 결과 값을 표현식을 이용해 출력 --%>
<h2><%=str%>은 <b><%=sum()%></b>입니다</h2>
<br>
<%--sum()메소드를 포함한 수식의 결과를 표현식을 사용해 출력 --%>
<h2><%=str%>에 3을 곱하면 <b><%=sum() * 3%></b>이 됩니다</h2>
<br>
<h2><%=str%>을 1000으로 나누면 <b><%=sum() / 1000. %></b>가 됩니다</h2>
<%--1000뒤에 . 을 붙이면 소수로 표현, 지우면 정수로 표현 --%>
</body>
</html>