<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Directives Tag</title>
</head>
<body>
<%@ include file="/ch03/include02_header.jsp" %>
<p>다음달 태영이의 생일을 미리 축하합니다.</p>
<%
for(int i=0; i<=9; i++){
if(i%2 == 0){
out.print(2 * i + "<br>");
}
}
%>
<%@ include file="/ch03/include02_footer.jsp" %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/css/bootstrap.min.css">
<title>welcome</title>
</head>
<body>
<!-- top.jsp 시작 -->
<%@ include file="top.jsp" %>
<!-- top.jsp 끝 -->
<%!
String greeting = "Welcome to 불주먹's Shopping Mall";
String tagline = "Welcome to 불주먹's Market!";
%>
<div class="jumbotron">
<div class="container">
<h3 class="display-3">
<!-- ?name=개똥이 -->
<!-- ${param.name} -> EL태그 -->
Welcome to ${param.name}'s Shopping Mall
</h3>
</div>
</div>
<div class="container">
<div class="text-center">
<h3>Welcome to ${param.name}'s Market!</h3>
</div>
</div>
<!-- botton.jsp 시작 -->
<%@ include file="bottom.jsp" %>
<!-- botton.jsp 끝 -->
</body>
</html>
https://mvnrepository.com/ 접속
jstl 검색
2번째 클릭
1.2 클릭
jar 클릭( jar는 라이브러리의 집합체)
WEB-INF폴더의 lib에 넣기
프로젝트 우클릭 - buidpath - 라이브러리 - Add external jars -
D:\B_Util\5.ApacheTomcat\apache-tomcat-8.5.37\lib에 jstl-1.2.jar 붙여넣기 - 열기 - apply
원리?
taglib 디렉티브 태그가 서블릿 프로그램으로 번역됨.
url 경로가 JSP 컨테이너에 사용자가 정의한 태그 라이브러리의 위치를 알려줌
prefix 속성의 값(c,fmf)은 사용자가 정의한 태그 라이브러리의 접두어 태그가 무엇인지 JSP 컨테이너에 알려주는 역할을 함
(c는 core, fmt는 format의 약자)
JSTL 태그 라이브러리가 있어야 taglib를 사용할 수 있다.
아래 중 해당하는 taglib 디렉티브를 JSP 상단에 추가한 후 사용한다.
JSTL 태그 라이브러리 설정 코드
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
var : 변수
begin : 시작
end : 종료
step : 증가값
items : 서블릿에서 담은 객체를 items에 넣어서 쓸 수 있다.
밑은 jstl 라이브러리에서 제공하는 기능이다.
c:forEach -> 반복
${i} -> EL (표현언어)
<c:forEach var="i" begin="1" end="10" step="1"> <c:out value="${i}"></c:out> </c:forEach>
문제1. page 디렉티브 태그를 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인해보자

1) page.jsp 파일 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<p>현재 날짜 : <%=new Date() %></p>
<p>5의 제곱 : <%=Math.pow(5, 2) %></p>
</body>
</html>
문제2. Include 디렉티브 태그를 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들어보자

1) header.jsp 파일 생성
<%@page import="java.util.Date"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<%@ include file="header.jsp" %>
<p>현재 시간 : <%=Calendar.getInstance().getTime() %></p>
<br>
<%
//날짜 형식을 String으로 혹은 String을 날짜 형식으로 변환하기 위한 포맷형식이다.
DateFormat format = new SimpleDateFormat("yyyy/MM/dd");
//Calender형식에서 날짜를 가져온다. 특이점은 Calender가 singleton 형식이다.
//Date 값을 가져와서 String으로 변환한다.
String datestr = format.format(Calendar.getInstance().getTime());
out.print(datestr + "<br>");
//Date 객체를 선언해서 String으로 변환한다.
datestr = format.format(new Date());
out.print(datestr + "<br>");
//String 형식을 Date 형식으로 변환한다.
Date date = format.parse("2022/01/04");
out.print(date + "<br>");
%>
</body>
</html>