<%@ page contentType="text/html;charset=UTF-8" %>
<%
java.util.Date date = new java.util.Date();
out.println("<h2>Today's date: " + date + "</h2>");
%>
<p>Hello, <%= userName %></p>
<%!
int square(int x) {
return x * x;
}
%>
<p>Square of 5 is <%= square(5) %></p>
<%
String username = request.getParameter("username");
out.println("Hello, " + username);
%>
<p>User Name: ${user.name}</p>
<jsp:include page="header.jsp" />
아래는 JSP 파일의 예제 소스코드이고, 주요 기본 구성 요소들을 모두 포함하고 있으며, 각 라인별로 설명을 추가하였다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>Sample JSP Page</title>
</head>
<body>
<%
// 자바 코드를 사용한 스크립트릿 예제
String userName = "John Doe";
java.util.Date date = new java.util.Date();
%>
<h1>Welcome to Our Website</h1>
<p>Hello, <%= userName %>!</p> <!-- 표현식을 사용하여 사용자 이름 출력 -->
<p>Today's date: <%= date %> </p> <!-- 표현식을 사용하여 날짜 출력 -->
<%!
// 선언을 사용한 메소드 예제
int square(int x) {
return x * x;
}
%>
<p>Square of 4 is <%= square(4) %></p> <!-- 선언한 메소드를 표현식을 통해 사용 -->
<p>User Name from EL: ${userName}</p> <!-- 표현 언어를 사용하여 사용자 이름 출력 -->
<!-- 표준 액션을 사용한 다른 JSP 페이지 포함 -->
<jsp:include page="footer.jsp"/>
</body>
</html>
설명
Line 1: 페이지의 콘텐츠 타입과 문자 인코딩을 지정하고, 자바 프로그래밍 언어를 사용한다는 것을 선언한다.
Line 2~5: HTML 문서의 기본 구조를 정의한다. head 태그 내에 문서의 제목을 설정한다.
Line 6~10: HTML body 섹션의 시작이다. 여기서 자바 코드를 스크립트릿을 사용하여 실행한다. 사용자 이름과 날짜를 변수로 선언하고 초기화한다.
Line 11: h1 태그를 사용하여 웹페이지의 제목을 출력한다.
Line 12-13: 표현식(<%= %>)을 사용하여 스크립트릿에서 선언한 변수들을 HTML 문서에 출력한다.
Line 15-19: JSP 내에서 자바 메소드를 선언한다. 이 메소드는 정수의 제곱을 계산하여 반환한다.
Line 20: 선언한 square 메소드를 호출하고 그 결과를 웹 페이지에 출력한다.
Line 22: 표현 언어를 사용하여 userName 변수의 값을 출력한다. 표현 언어는 객체의 속성에 간단하고 깔끔하게 접근할 수 있게 해준다.
Line 24: <jsp:include> 표준 액션을 사용하여 다른 JSP 페이지 (footer.jsp)를 현재 페이지에 포함한다. 이를 통해 페이지의 모듈화를 달성할 수 있게 된다.
Line 25-27: HTML 문서의 닫는 태그이다.