Search
Duplicate

JSP ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑํ•˜๊ธฐ

JSP ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑํ•˜๊ธฐ

JSP ํŽ˜์ด์ง€์˜ ๊ณตํ†ต๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ์˜์—ญ์€ ๋ณ„๋„์˜ JSP ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ฐ ํŽ˜์ด์ง€๋ณ„๋กœ ํฌํ•จํ•˜์—ฌ(include) ์ ์šฉํ•œ๋‹ค.
๋งค ํŽ˜์ด์ง€ ๋ณ„๋กœ, ๋ฐ˜๋ณต๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ์˜์—ญ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ฝ”๋“œ์˜ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด์„œ ์œ ์ง€๋ณด์ˆ˜(์ˆ˜์ •)ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
ํ—ค๋”, ํ‘ธํ„ฐ, ์‚ฌ์ด๋“œ๋ฐ”, css, js ๋“ฑ์„ ๋ชจ๋“ˆ ํŒŒ์ผ(jsp)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ๊ฐ ํŽ˜์ด์ง€์—์„œ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํฌํ•จํ•˜๋ฉด, ํ•ด๋‹น ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ชจ๋“  ํŽ˜์ด์ง€์— ๊ณตํ†ต๋œ ๋ ˆ์ด์•„์›ƒ์ด ์ ์šฉ๋œ๋‹ค.

์ตœ์ข…ํ™”๋ฉด

JSP ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ์‹ค์Šตํ•ด๋ณด๊ธฐ

โ€ข
ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
โ€ข
layout ํด๋” ์ƒ์„ฑ
โ—ฆ
๊ณตํ†ต ๋ชจ๋“ˆ ํŽ˜์ด์ง€ ์ƒ์„ฑ
โ–ช
meta.jsp
โ–ช
link.jsp
โ–ช
script.jsp
โ–ช
header.jsp
โ–ช
footer.jsp
โ€ข
๊ฐœ๋ณ„ ํŽ˜์ด์ง€ ์ƒ์„ฑ
โ—ฆ
index.jsp
โ€ข
๋ชจ๋“ˆ ํŽ˜์ด์ง€ ํฌํ•จํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

1.
New
2.
Dynamic Web Project
3.
web.xml

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