๐ก์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํ์ผ๋ก ๋ถ๋ฆฌ ํ๊ธฐ
1. layout/header.jsp
2. layout/footer.jsp
3. view/mainPage.jsp ์ฝ๋ ์์ ํ๊ธฐ (JSP ํ๊ทธ ์ถ๊ฐ)
4. JSP ํ๊ทธ ์กฐ์ฌํ๊ธฐ
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>myBank</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
<style>
.fakeimg {
height: 200px;
background: #aaa;
}
</style>
</head>
<body>
<div class="jumbotron text-center" style="margin-bottom:0">
<h1>My Bank</h1>
<p>๋ง์ด๋ฐ์ดํฐ์ค๋ฅผ ํ์ฉํ ์คํ๋ง ๋ถํธ ์ฑ ๋ง๋ค์ด๋ณด๊ธฐ</p>
</div>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
<div class="container" style="margin-top:30px">
<div class="row">
<div class="col-sm-4">
<h2>About Me</h2>
<h5>Photo of me:</h5>
<div class="fakeimg">Fake Image</div>
<p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>Some Links</h3>
<p>Lorem ipsum dolor sit ame.</p>
<ul class="nav nav-pills flex-column">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<hr class="d-sm-none">
</div>
<!-- end of header.jsp -->
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- start of footer.jsp -->
<div class="jumbotron text-center" style="margin-bottom:0">
<p>Footer</p>
</div>
</body>
</html>
<!-- end of footer.jsp -->
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- header.jsp -->
<%@ include file="/WEB-INF/view/layout/header.jsp" %>
<!-- start of content.jsp(xxx.jsp) -->
<div class="col-sm-8">
<h2>TITLE HEADING</h2>
<h5>Title description, Dec 7, 2017</h5>
<div class="fakeimg">Fake Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5>
<div class="fakeimg">Fake Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.</p>
</div>
</div>
</div>
<!-- end of content.jsp(xxx.jsp) -->
<!-- footer.jsp -->
<%@ include file="/WEB-INF/view/layout/footer.jsp" %>
JSP ํ๊ทธ
JSP(JavaServer Pages) ํ๊ทธ๋ JSP ํ์ผ ๋ด์์ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํน๋ณํ ์ฝ๋ ์กฐ๊ฐ์ ๋๋ค. JSP ํ๊ทธ๋ HTML ํ๊ทธ ๋ด์ ์ฝ์ ๋์ด ์๋ฒ์์ ์คํ๋๋ฉฐ, ํ์ด์ง๊ฐ ์ฌ์ฉ์์๊ฒ ์ ์ก๋๊ธฐ ์ ์ ์๋ฒ์์ HTML๋ก ๋ณํ๋ฉ๋๋ค. JSP ํ๊ทธ๋ ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ํ์ ์ธ ๋ถ๋ถ๋ค๋ก ๋๋ฉ๋๋ค:
1. ์ง์์(Directives)
- <%@ directive attribute="value" %> ํ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- JSP ํ์ด์ง์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ฅ ํํ ์ฌ์ฉ๋๋ ์ง์์๋ page, include, **taglib**์
๋๋ค.
- page: ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ํ๋ฉฐ, ์ธ์ด, ์๋ฌ ํ์ด์ง, ๋ฒํผ ํฌ๊ธฐ ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
- include: ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ํ์ฌ JSP ํ์ด์ง์ ํฌํจ์ํต๋๋ค.
- taglib: ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ด์ง์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
2. ์คํฌ๋ฆฝํธ ์์(Scripting Elements)
- ๋์ ์ธ ์ปจํ
์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํ Java ์ฝ๋๋ฅผ JSP ํ์ด์ง์ ์ฝ์
ํ ์ ์๊ฒ ํด์ค๋๋ค.
- ํํ์(Expressions): <%= expression %> ํํ๋ก, ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ถ๋ ฅํฉ๋๋ค.
- ์คํฌ๋ฆฝํ๋ฆฟ(Scriptlets): <% code %> ํํ๋ก, ์์์ Java ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- ์ ์ธ(Declarations): <%! code %> ํํ๋ก, ๋ฉ์๋๋ ๋ณ์ ๋ฑ์ JSP ํ์ด์ง์ ์ ์ธํ ์ ์์ต๋๋ค.
3. ์ก์ ํ๊ทธ(Action Tags)
- JSP ํ์ด์ง์์ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ ์ํํ๊ธฐ ์ํ ๋นํธ์ธ ์ก์
์ ์ ์ํฉ๋๋ค.
- <jsp:forward>: ํ์ฌ ํ์ด์ง์์ ๋ค๋ฅธ ํ์ด์ง๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
- <jsp:include>: ๋ค๋ฅธ ํ์ด์ง์ ์ถ๋ ฅ์ ํ์ฌ ํ์ด์ง์ ํฌํจ์ํต๋๋ค.
- <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>: JavaBean ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ์ ์ค์ ํ๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
4. ์ฌ์ฉ์ ์ ์ ํ๊ทธ(Custom Tags)
- ๊ฐ๋ฐ์๊ฐ ์ง์ ํ๊ทธ๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด๋ฅผ ์ํด taglib ์ง์์๋ก ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ธํ ํ ์ฌ์ฉํฉ๋๋ค.
- ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ ๋ณต์กํ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
JSP ํ๊ทธ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ, Java ์ฝ๋์ HTML์ ๋ถ๋ฆฌํ์ฌ ์น ํ์ด์ง๋ฅผ ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ณ , ์ ์ง๋ณด์ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ ํ๊ทธ์ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์น ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
'Spring boot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring boot] GET ๋ฐฉ์๊ณผ URL ์ฃผ์ ์ค๊ณ (1) | 2024.09.26 |
---|---|
[Spring Boot] Bank App (9) - MainController, mainPage.jsp ๊ตฌํ (0) | 2024.08.14 |
[Spring Boot] Bank App (7) - ํ๋ฉด ๊ตฌํ _1(ํ ํ๋ฆฟ ๊ฐ์ ธ์ค๊ธฐ) (0) | 2024.08.13 |
[Spring Boot] Bank App (6) - ๋ชจ๋ธ๋ง (0) | 2024.08.13 |
[Spring Boot] REST API ๋ (0) | 2024.08.13 |