
지시자(Directive):
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
스크립틀릿(Scriptlet):
<%
String message = "Hello, World!";
%>
표현식(Expression):
<%= message %>
선언문(Declaration):
<%!
private String getWelcomeMessage() {
return "Welcome to JSP!";
}
%>
요청 처리:
응답 생성:
이해하기 쉽게 요약하자면, JSP는 Java 기반의 기술로, 서버 측에서 동적인 웹 페이지를 생성하고, 이를 통해 클라이언트에게 동적이고 데이터 중심의 웹 애플리케이션을 제공하는 데 사용됩니다. 예비 개발자로서 JSP를 이해하고 활용하면, 강력한 Java 생태계를 활용하여 다양한 웹 애플리케이션을 개발할 수 있습니다.
<copyrigrht.jsp>
<%@ page contentType="text/html; charset=UTF-8"%>
<div>
Copyright (c) ..... All rights reserved.
</div>
설명:
• <%@ page contentType="text/html; charset=UTF-8"%>: JSP 페이지의 contentType을 설정하는 지시어입니다. 이 설정으로 페이지의 인코딩을 UTF-8로 지정합니다.
• <div>: 블록 레벨의 콘텐츠를 담는 요소입니다.
• Copyright (c) ..... All rights reserved.: 저작권 정보를 표시합니다.
<main.jsp>
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>메인 화면 페이지</title>
</head>
<body>
<h1>include 지시어 태그 실습</h1>
내용 수정중입니다. 다음줄에 삽입이 됩니다. <br>
<jsp:include page="copyright.jsp" />
</body>
</html>
설명:
• <%@ page contentType="text/html; charset=UTF-8"%>: JSP 페이지의 contentType을 설정하는 지시어입니다. 이 설정으로 페이지의 인코딩을 UTF-8로 지정합니다.
• <!DOCTYPE html>: HTML5 문서 타입 선언입니다.
• <html lang="ko">: 문서의 언어를 한국어로 설정합니다.
• <head>: HTML 문서의 메타데이터를 포함하는 부분입니다.
• <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">: 문서의 인코딩 타입을 지정합니다.
• <title>메인 화면 페이지</title>: 브라우저의 제목 표시줄이나 탭에 표시될 제목을 지정합니다.
• <body>: HTML 문서의 본문 내용을 포함합니다.
• <h1>include 지시어 태그 실습</h1>: 큰 제목을 표시합니다.
• 내용 수정중입니다. 다음줄에 삽입이 됩니다. <br>: 텍스트를 표시하고 줄바꿈을 합니다.
• <jsp:include page="copyright.jsp" />: 다른 JSP 페이지인 copyright.jsp를 포함합니다.
JSP include 태그 사용 이유 및 유의점
사용 이유:
1. 재사용성: 여러 JSP 페이지에서 공통으로 사용되는 부분(예: 헤더, 푸터, 저작권 정보)을 하나의 파일로 만들어서 재사용할 수 있습니다.
2. 유지보수성: 공통 부분이 수정될 경우 해당 파일만 수정하면 모든 관련 JSP 페이지에 변경 사항이 반영됩니다.
3. 모듈화: 코드의 가독성과 관리가 용이해집니다. 각 부분을 모듈화하여 필요한 곳에 포함시킬 수 있습니다.
유의점:
1. 경로 지정: jsp:include 태그를 사용할 때 상대 경로나 절대 경로를 정확하게 지정해야 합니다.
2. 인코딩: 포함되는 JSP 파일과 포함하는 JSP 파일의 인코딩 설정이 일치해야 합니다.
3. 성능: 많은 파일을 포함하는 경우 서버의 성능에 영향을 줄 수 있으므로 필요한 경우에만 사용해야 합니다.
논리적 흐름:
1. main.jsp는 웹 애플리케이션의 메인 페이지로서 기본적인 HTML 구조와 함께 공통적으로 포함할 콘텐츠(copyright.jsp)를 가지고 있습니다.
2. main.jsp에서 jsp:include 태그를 사용하여 copyright.jsp 파일을 포함합니다.
3. copyright.jsp는 저작권 정보를 담고 있으며, 여러 페이지에서 재사용될 수 있습니다.
4. 사용자가 main.jsp를 요청하면 copyright.jsp가 포함된 형태로 브라우저에 전달됩니다.
IntelliJ 설정 및 사용 방법:
1. 프로젝트 생성:
• IntelliJ에서 새로운 프로젝트를 생성합니다.
• 프로젝트 유형으로 “Java Enterprise”를 선택하고 “Web Application”을 선택합니다.
• 필요한 라이브러리(JDK, 서버)를 설정합니다.
2. 디렉토리 구조:
• src/main/webapp/WEB-INF/jsp/ 디렉토리를 생성합니다.
• main.jsp와 copyright.jsp 파일을 이 디렉토리 안에 생성합니다.
3. 서버 설정:
• 프로젝트 설정에서 “Run/Debug Configurations”를 열고 새로운 “Tomcat Server” 설정을 추가합니다.
• 아티팩트를 배포 설정에 추가하고, 서버를 실행합니다.
4. JSP 파일 실행:
• 브라우저를 열고 서버가 실행 중인 URL을 입력합니다.
• 예: http://localhost:8080/context-path/main.jsp
이와 같은 방식으로 JSP 페이지를 작성하고 IntelliJ에서 실행할 수 있습니다. jsp:include 태그를 통해 공통 부분을 포함시키는 방법은 유지보수성과 재사용성을 높이는 데 큰 도움이 됩니다.
your-project/
│
├── src/
│ └── main/
│ ├── java/ # 자바 소스 파일
│ ├── resources/ # 리소스 파일 (설정 파일 등)
│ └── webapp/ # 웹 애플리케이션 루트
│ ├── WEB-INF/ # 웹 애플리케이션 구성 파일
│ │ ├── web.xml # 배포 설명자 (Deployment Descriptor)
│ │ └── jsp/ # JSP 파일
│ │ ├── main.jsp # main.jsp 파일
│ │ └── copyright.jsp# copyright.jsp 파일
│ ├── META-INF/ # 메타데이터 파일
│ └── static/ # 정적 파일 (CSS, JS, 이미지 등)
│
├── pom.xml # Maven POM 파일
└── README.md # README 파일
currentTime.jsp 파일 설명currentTime.jsp 파일은 JSP를 사용하여 현재 날짜를 웹 페이지에 출력하는 예제입니다. 이 파일은 자바의 Date 클래스를 가져와서 현재 날짜를 출력합니다.
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>스크립틀릿 실습</title>
</head>
<body>
<h1>현재 날짜 출력 실습</h1>
<%
Date d = new Date();
%>
현재 날짜 : <%= d %>
</body>
</html>
<%@ page import="java.util.Date" %>
java.util.Date 클래스를 가져옵니다.Date 클래스는 자바에서 날짜와 시간을 나타내는 클래스입니다. 이 클래스를 가져와서 JSP 페이지 내에서 사용할 수 있도록 합니다.<%@ page contentType="text/html; charset=UTF-8"%>
HTML 기본 구조
<!DOCTYPE html>: HTML5 문서임을 나타내는 선언입니다.<html lang="ko">: HTML 문서의 언어를 한국어로 설정합니다.<head>: 메타데이터와 제목을 포함하는 문서의 머리 부분입니다.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">: 문서의 콘텐츠 타입과 문자 인코딩을 설정합니다.<title>스크립틀릿 실습</title>: 웹 페이지의 제목을 설정합니다.<body>: 실제 콘텐츠가 포함되는 문서의 본문입니다.스크립틀릿 (Scriptlet) 태그
<% ... %>: JSP 페이지 내에 자바 코드를 삽입하는 태그입니다.<% Date d = new Date(); %>: 새로운 Date 객체를 생성합니다. 이 객체는 현재 날짜와 시간을 나타냅니다.표현식 (Expression) 태그
<%= d %>: 자바 객체 d의 값을 출력합니다. 이 표현식 태그는 Date 객체의 toString() 메서드를 호출하여 현재 날짜와 시간을 출력합니다.Date 클래스Date 클래스 설명Date 클래스는 자바에서 날짜와 시간을 나타내기 위해 사용됩니다. 이 클래스는 1970년 1월 1일 00:00:00 GMT를 기준으로 밀리초 단위의 시간 값을 저장합니다.Date 클래스는 대부분의 날짜 및 시간 관련 작업을 수행하기 위한 기본적인 메서드를 제공합니다.Date 클래스 사용 예제Date 객체 생성:
Date currentDate = new Date();
Date 객체를 생성합니다.Date 객체 출력:
System.out.println(currentDate);
currentDate 객체의 toString() 메서드를 호출하여 날짜와 시간을 출력합니다.Date 클래스의 주요 메서드getTime(): 1970년 1월 1일 00:00:00 GMT 이후 경과된 시간을 밀리초 단위로 반환합니다.long timeInMillis = currentDate.getTime();setTime(long time): 주어진 밀리초 값을 사용하여 Date 객체를 설정합니다.currentDate.setTime(timeInMillis);currentTime.jsp 파일의 사용currentTime.jsp 파일은 웹 애플리케이션에서 현재 날짜와 시간을 동적으로 표시하고자 할 때 사용됩니다.Date 클래스의 관계Date 클래스를 활용할 수 있습니다.Date 객체를 생성하고 현재 날짜와 시간을 HTML 페이지에 출력합니다.이와 같이, currentTime.jsp 파일은 자바의 Date 클래스를 활용하여 현재 날짜와 시간을 웹 페이지에 동적으로 출력하는 예제입니다. 이를 통해 JSP와 자바 코드를 함께 사용하는 방법을 배울 수 있습니다.
