설명문

By | 2009년 3월 4일

모든 프로그래밍 언어는 이해를 돕기위해 프로그램의 수행과는 관계없는 설명문을 달 수 있다. JSP역시 JSP 태그 “<% ~ %>” 내부에서는 java의 설명문을 위한 표시인 “//”, “/* ~ */” 을 따른다. 그러나 JSP 태그 외부에서는 “<%– ~ –%>”를 이용한 JSP 만의 고유 설명문과 “<!– ~ –>”를 이용한 HTML 설명문이 사용된다. JSP 고유 설명문과 HTML 설명문의 차이점은 JSP 프로그램 실행후 소스보기로 확인했을 때 JSP 고유 설명문의 경우 소스보기로 확인할 수 없으며, HTML 설명문의 경우 소스보기로 확인 가능하다는 점이다.

JSP 태그 내부에서 사용되는 설명문

java 설명문

// 뒤에 1줄 짜리 설명문이 위치하며 줄이 바뀌면 설명문이 끝난다.

/* 사이에 설명문이 위치하며 1줄 이상의 설명문에 사용된다. */

JSP 태그 외부에서 사용되는 설명문

JSP 설명문

<%– 이 부분은 1 줄 이상 가능한 JSP 설명문으로 소스보기로 볼 수 없습니다. –%>

HTML 설명문

<!– 이 부분은 1 줄 이상 가능한 HTML 설명문으로 소스보기로 볼 수 있습니다. –>

다음 “comment1.jsp” 프로그램은 JSP에서 사용한 설명문의 예를 보여주고 있다.

<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
    pageEncoding=”EUC-KR”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-KR”>
<title>Insert title here</title>
</head>
<!– 이 부분은 HTML 설명문으로 소스보기로 볼 수 있습니다. –>
<body>
<%– 이 부분은 JSP 설명문으로 소스보기로 볼 수 없습니다. –%>
<%
int kor=90, eng=100, mat=80; // 국어, 영어, 수학 (1줄 설명문)
double avg; // 평균 (1줄 설명문)

/*******************************
  국어, 영어, 수학 점수를 합산하여
  3으로 나눈 후 평균을 구한다.
 *******************************/

avg = (kor+eng+mat)/3;
%>
평균 : <%= avg /* 평균점수를 출력한다. */ %> 점
</body>
</html>

사용자 삽입 이미지

comment1.jsp 실행결과


사용자 삽입 이미지

comment1.jsp 실행 후 소스보기 결과

위 프로그램에서는 “<!– ~ –>”부분의 HTML 설명문과 “<%– ~ –%>”부분의 JSP 고유 설명문 그리고 Java 설명문에서 비롯된 “//”를 사용한 설명문 2개와 “/* ~ */”를 사용한 설명문 2개 총 6개의 설명문이 사용되었다.

<!– 이 부분은 HTML 설명문으로 소스보기로 볼 수 있습니다. –>

<%– 이 부분은 JSP 설명문으로 소스보기로 볼 수 없습니다. –%>

// 국어, 영어, 수학 (1줄 설명문)”

// 평균 (1줄 설명문)”

/*******************************
  국어, 영어, 수학 점수를 합산하여
  3으로 나눈 후 평균을 구한다.
 *******************************/

/* 평균점수를 출력한다. */

위 프로그램에서 HTML 설명문의 경우 소스보기에서 볼 수 있으나, JSP 고유 설명문의 경우 소스보기에서 볼 수 없다. 그리고 JSP 태그 내부에서 한 줄 설명문 사용 시 주의해야 할 점이 있다. 마지막 설명문을 보면 “/* 평균점수를 출력한다. */”의 경우 한 줄 설명문 이지만 여러 줄 설명문을 위한 “/* ~ */”를 사용하고 있는데, 이 경우 한 줄 설명문을 위한 “//”를 사용하면 안된다는 점이다. 우선 다음 프로그램 “comment2.jsp”의 결과를 보자.

<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
    pageEncoding=”EUC-KR”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-KR”>
<title>Insert title here</title>
</head>
<!– 이 부분은 HTML 설명문으로 소스보기로 볼 수 있습니다. –>
<body>
<%– 이 부분은 JSP 설명문으로 소스보기로 볼 수 없습니다. –%>
<%
int kor=90, eng=100, mat=80; // 국어, 영어, 수학 (1줄 설명문)
double avg; // 평균 (1줄 설명문)

/*******************************
  국어, 영어, 수학 점수를 합산하여
  3으로 나눈 후 평균을 구한다.
 *******************************/

avg = (kor+eng+mat)/3;
%>
평균 : <%= avg // 평균점수를 출력한다. %> 점
</body>
</html>

사용자 삽입 이미지

comment2.jsp 실행결과


실행 결과 기대와는 달리 오류메세지만 출력하고 있다. 그 이유는 한 줄 설명을 위한 “//” 처리는 줄의 마지막까지를 설명문으로 간주하기 때문이다. 따라서 위 프로그램의 경우

“평균 : <%= avg // 평균점수를 출력한다. %> 점”

부분에서 설명문은 “// 평균점수를 출력한다.” 부분이 아닌 “// 평균점수를 출력한다. %> 점”까지가 설명문으로 취급된다. 따라서 “<%=” 태그에 의해 열린 부분이 있으면 “%>”로 마무리 되야 하는데 “// 평균점수를 출력한다. %> 점” 부분의 “%>” 역시 프로그램의 수행과는 전혀 상관없는 즉 닫힌 JSP 태그로 인식되는 것이 아니라 단지 설명문의 한 부분르로 처리되어 “comment2.jsp”의 마지막 까지 닫힌 JSP 태그인 “%>”를 찾을 수 없기 때문에 오류를 발생시키는 것이다. 따라서 “comment2.jsp”가 올바르게 실행되기 위해서는 “comment3.jsp”와 같이 수정돼야 한다.

<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
    pageEncoding=”EUC-KR”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-KR”>
<title>Insert title here</title>
</head>
<!– 이 부분은 HTML 설명문으로 소스보기로 볼 수 있습니다. –>
<body>
<%– 이 부분은 JSP 설명문으로 소스보기로 볼 수 없습니다. –%>
<%
int kor=90, eng=100, mat=80; // 국어, 영어, 수학 (1줄 설명문)
double avg; // 평균 (1줄 설명문)

/*******************************
  국어, 영어, 수학 점수를 합산하여
  3으로 나눈 후 평균을 구한다.
 *******************************/

avg = (kor+eng+mat)/3;
%>
평균 : <%= avg // 평균점수를 출력한다.
%> 점
</body>
</html>

사용자 삽입 이미지

comment3.jsp 실행결과

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.