JSP λ μ΄μμ ꡬμ±νκΈ°
JSP νμ΄μ§μ 곡ν΅λλ λ μ΄μμ μμμ λ³λμ JSP νμΌμ λ§λ€κ³ κ° νμ΄μ§λ³λ‘ ν¬ν¨νμ¬(include) μ μ©νλ€.
μ΅μ’ νλ©΄
JSP λ μ΄μμ κ΅¬μ± μ€μ΅ν΄λ³΄κΈ°
β’
νλ‘μ νΈ μμ±
β’
layout ν΄λ μμ±
β¦
κ³΅ν΅ λͺ¨λ νμ΄μ§ μμ±
βͺ
meta.jsp
βͺ
link.jsp
βͺ
script.jsp
βͺ
header.jsp
βͺ
footer.jsp
β’
κ°λ³ νμ΄μ§ μμ±
β¦
index.jsp
β’
λͺ¨λ νμ΄μ§ ν¬ν¨νκΈ°
νλ‘μ νΈ μμ±
1.
New
2.
Dynamic Web Project
3.
layout ν΄λ μμ±
webapp/layout ν΄λ μμ±
κ³΅ν΅ λͺ¨λ νμ΄μ§ μμ±
μ¬λ¬ νμ΄μ§μμ 곡ν΅μ μΌλ‘ μ¬μ©λλ λ μ΄μμ μμμ νμ΄μ§λ‘ μμ±νλ€.
meta.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String root = request.getContextPath();
%>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shopπ - ALOHA CLASSπ΄</title>
<!-- νλΉμ½ -->
<link rel="icon" href="<%= root %>/static/img/logo.png" type="image/x-icon">
<!-- μΈλ€μΌ μ΄λ―Έμ§ μ€μ -->
<meta property="og:image" content="https://i.imgur.com/yiTQ3EV.jpg">
<!-- μΉ νμ΄μ§ μ€λͺ
(μ ν μ¬ν) -->
<meta property="og:description" content="ALOHA CLASSπ΄ - μΌνλͺ° νλ‘μ νΈ">
<!-- μΉ νμ΄μ§ URL -->
<meta property="og:url" content="<%= root %>">
<!-- μΉ νμ΄μ§ μ λͺ© -->
<meta name="title" content="Shopπ - ALOHA CLASSπ΄">
<meta property="og:title" content="Shopπ - ALOHA CLASSπ΄">
<!-- μΉ νμ΄μ§ νμ
(μΉμ¬μ΄νΈ, κΈ°μ¬, μ ν λ±) -->
<meta property="og:type" content="website">
<!-- κ²μμ΄ -->
<meta name="keywords" content="μΌνλͺ° νλ‘μ νΈ, μλ° μΉκ°λ°, ALOHA CLASS, μλ‘ν ν΄λμ€">
<meta name="robots" content="index, follow">
<!-- μ¬μ΄νΈ 맡 -->
<link rel="sitemap" href="<%= root %>/static/sitemap.xml">
HTML
볡μ¬
link.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- bootstrap lib -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
<!-- font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Sans:400,700&display=swap">
<!-- css -->
<link href="<%= request.getContextPath() %>/static/css/style.css" rel="stylesheet" />
HTML
볡μ¬
script.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- booststrap -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm" crossorigin="anonymous"></script>
<!-- js -->
<script src="<%= request.getContextPath() %>/static/js/script.js"></script>
HTML
볡μ¬
header.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String root = request.getContextPath();
String loginId = (String) session.getAttribute("loginId");
%>
<nav class="navbar bg-dark navbar-expand-lg bg-body-tertiary" data-bs-theme="dark">
<div class="container-fluid">
<a class="navbar-brand" href="<%= root %>/">Home</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="<%= root %>/shop/products.jsp">Product</a>
</li>
</ul>
<ul class="navbar-nav d-flex align-items-center px-3">
<%
if( loginId == null || loginId.equals("") ) {
%>
<!-- λΉλ‘κ·ΈμΈ μ -->
<li class="nav-item">
<a class="nav-link" aria-current="page" href="<%= root %>/user/login.jsp">λ‘κ·ΈμΈ</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="<%= root %>/user/join.jsp">νμκ°μ
</a>
</li>
<li class="nav-item">
</li>
<%
}
else {
%>
<!-- λ‘κ·ΈμΈ μ -->
<li class="nav-item">
<div class="dropdown">
<a href="#" class="d-flex align-items-center link-body-emphasis text-decoration-none dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<img src="https://github.com/mdo.png" alt="" width="32" height="32" class="rounded-circle me-2">
<%-- <strong><%= loginId %></strong> --%>
</a>
<ul class="dropdown-menu dropdown-menu-end text-small shadow">
<li><a class="dropdown-item" href="<%= root %>/user/index.jsp">λ§μ΄ νμ΄μ§</a></li>
<li><a class="dropdown-item" href="<%= root %>/user/update.jsp">νμμ 보 μμ </a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="<%= root %>/user/logout.jsp">λ‘κ·Έμμ</a></li>
</ul>
</div>
</li>
<%
}
%>
</ul>
</div>
</div>
</nav>
HTML
볡μ¬
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<footer class="container p-5">
<p>copyright Shop</p>
</footer>
HTML
볡μ¬
κ°λ³ νμ΄μ§ μμ±
κ³΅ν΅ λͺ¨λ νμ΄μ§λ₯Ό ν¬ν¨ν κ°λ³ νμ΄μ§λ₯Ό μμ±νλ€.
index.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String root = request.getContextPath();
String loginId = (String) session.getAttribute("loginId");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- meta, link ν¬ν¨νκΈ° -->
</head>
<body>
<!-- header ν¬ν¨νκΈ° -->
<div class="px-4 py-5 my-5 text-center">
<h1 class="display-5 fw-bold text-body-emphasis">λ©μΈνλ©΄</h1>
<div class="col-lg-6 mx-auto">
<p class="lead mb-4">Shop μΌνλͺ° μ
λλ€.</p>
<div class="d-grid gap-2 d-sm-flex justify-content-sm-center">
<a href="<%= root %>/shop/products.jsp" class="btn btn-primary btn-lg px-4 gap-3">μνλͺ©λ‘</a>
<%
if( loginId == null || loginId.equals("") ) {
%>
<a href="<%= root %>/user/login.jsp" class="btn btn-outline-secondary btn-lg px-4">λ‘κ·ΈμΈ</a>
<%
} else {
%>
<a href="<%= root %>/user/logout.jsp" class="btn btn-outline-danger btn-lg px-4">λ‘κ·Έμμ</a>
<%
}
%>
</div>
</div>
</div>
<!-- footer ν¬ν¨νκΈ° -->
<!-- script ν¬ν¨νκΈ° -->
</body>
</html>
HTML
볡μ¬
λͺ¨λ νμ΄μ§ ν¬ν¨νκΈ°
index.jsp - μ 체 μ½λ
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String root = request.getContextPath();
String loginId = (String) session.getAttribute("loginId");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<jsp:include page="/layout/meta.jsp" />
<jsp:include page="/layout/link.jsp" />
</head>
<body>
<jsp:include page="/layout/header.jsp" />
<div class="px-4 py-5 my-5 text-center">
<h1 class="display-5 fw-bold text-body-emphasis">λ©μΈνλ©΄</h1>
<div class="col-lg-6 mx-auto">
<p class="lead mb-4">Shop μΌνλͺ° μ
λλ€.</p>
<div class="d-grid gap-2 d-sm-flex justify-content-sm-center">
<a href="<%= root %>/shop/products.jsp" class="btn btn-primary btn-lg px-4 gap-3">μνλͺ©λ‘</a>
<%
if( loginId == null || loginId.equals("") ) {
%>
<a href="<%= root %>/user/login.jsp" class="btn btn-outline-secondary btn-lg px-4">λ‘κ·ΈμΈ</a>
<%
} else {
%>
<a href="<%= root %>/user/logout.jsp" class="btn btn-outline-danger btn-lg px-4">λ‘κ·Έμμ</a>
<%
}
%>
</div>
</div>
</div>
<jsp:include page="/layout/footer.jsp" />
<jsp:include page="/layout/script.jsp" />
</body>
</html>
HTML
볡μ¬