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
๋ณต์ฌ





