<c:set var="root" value="${pageContext.request.contextPath}"/>
<div class="collapse navbar-collapse" id="navMenu">
<ul class="navbar-nav">
<li class="nav-item"><a href="${root}/board/main" class="nav-link">์์ ๊ฒ์ํ</a>
</li>
<li class="nav-item"><a href="${root}/board/main" class="nav-link">์ ๋จธ๊ฒ์ํ</a>
</li>
<li class="nav-item"><a href="${root}/board/main" class="nav-link">์ ์น๊ฒ์ํ</a>
</li>
<li class="nav-item"><a href="${root}/board/main" class="nav-link">์คํฌ์ธ ๊ฒ์ํ</a>
</li>
</ul>
ํ์ธ์ ์ํด์ ์ผ์์ ์ผ๋ก modules๋ณ๊ฒฝ

๋ฆฌ์คํํธํ๊ณ ํํ์ด์ง ๋ค์ด๊ฐ

์์ ๊ฒ์ํ์ ์ปค์ ์ฌ๋ฆฌ๋ฉด ์ผ์ชฝ ํ๋จ์ pathํ์ธ๊ฐ๋ฅ

๋ค์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ๋ณ๊ฒฝ
๋ง์ฝ contextPath ๊ฐ ๋ฐ๋๊ฒ ๋๋ฉด ๋ชจ๋ ์ฃผ์๋ฅผ ์์ ํด์ผ ํ ์ ์๊ธฐ ๋๋ฌธ์
์ ํํ๊ฒ ์ ์ด์ฃผ๊ธฐ ์ํด์ ์ฃผ์๋ฅผ ๋ณ์(root)๋ก ๋ง๋ค์ด์ ์ ์ฅํด์ ์ฌ์ฉ
BoardController ์์ฑ

package com.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/board")
public class BoardController {
@GetMapping("/main")
public String main() {
return "board/main";
}
}
views-> boardํด๋ ์์ฑ


๋ง๋ค์ด ๋ board_main.html๋ณต์ฌํด์ ๋ฃ๊ณ main.jsp๋ก ์์ ํจ
menu.jsp์์ ์ค์ ํ
utf-8 ์ค์ ์ด๋ cํ๊ทธ๋ค ๋ณต์ฌํด์ ์๋จ์ ๋ถ์ฌ๋ฃ๊ธฐ
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}"/>

๊ทธ๋ฆฌ๊ณ index.jsp ์ฌ์ฉํ import๋ก ๋ค๋ธ๋ ํธํฐ ๋ณ๊ฒฝ
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>๋ฏธ๋ ํ๋ก์ ํธ</title>
<!-- Bootstrap CDN -->
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"
/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<!-- ์๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/menu.jsp"/>
<!-- ๊ฒ์๊ธ ๋ฆฌ์คํธ -->
<div class="container" style="margin-top: 100px">
<div class="card shadow">
<div class="card-body">
<h4 class="card-title">๊ฒ์ํ ์ด๋ฆ</h4>
<table class="table table-hover" id="board_list">
<thead>
<tr>
<th class="text-center d-none d-md-table-cell">๊ธ๋ฒํธ</th>
<th class="w-50">์ ๋ชฉ</th>
<th class="text-center d-none d-md-table-cell">์์ฑ์</th>
<th class="text-center d-none d-md-table-cell">์์ฑ๋ ์ง</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
<tr>
<td class="text-center d-none d-md-table-cell">10</td>
<td><a href="board_read.html">๊ธ ์ ๋ชฉ ์
๋๋ค</a></td>
<td class="text-center d-none d-md-table-cell">ํ๊ธธ๋</td>
<td class="text-center d-none d-md-table-cell">2018-12-12</td>
</tr>
</tbody>
</table>
<div class="d-none d-md-block">
<ul class="pagination justify-content-center">
<li class="page-item">
<a href="#" class="page-link">์ด์ </a>
</li>
<li class="page-item">
<a href="#" class="page-link">1</a>
</li>
<li class="page-item">
<a href="#" class="page-link">2</a>
</li>
<li class="page-item">
<a href="#" class="page-link">3</a>
</li>
<li class="page-item">
<a href="#" class="page-link">4</a>
</li>
<li class="page-item">
<a href="#" class="page-link">5</a>
</li>
<li class="page-item">
<a href="#" class="page-link">6</a>
</li>
<li class="page-item">
<a href="#" class="page-link">7</a>
</li>
<li class="page-item">
<a href="#" class="page-link">8</a>
</li>
<li class="page-item">
<a href="#" class="page-link">9</a>
</li>
<li class="page-item">
<a href="#" class="page-link">10</a>
</li>
<li class="page-item">
<a href="#" class="page-link">๋ค์</a>
</li>
</ul>
</div>
<div class="d-block d-md-none">
<ul class="pagination justify-content-center">
<li class="page-item">
<a href="#" class="page-link">์ด์ </a>
</li>
<li class="page-item">
<a href="#" class="page-link">๋ค์</a>
</li>
</ul>
</div>
<div class="text-right">
<a href="board_write.html" class="btn btn-primary">๊ธ์ฐ๊ธฐ</a>
</div>
</div>
</div>
</div>
<!-- ํ๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/footer.jsp"/>
</body>
</html>
menu.jsp ์์
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a href="${root}/user/login" class="nav-link">๋ก๊ทธ์ธ</a>
</li>
<li class="nav-item"><a href="${root}/user/join" class="nav-link">ํ์๊ฐ์
</a>
</li>
<li class="nav-item"><a href="${root}/user/modify" class="nav-link">์ ๋ณด์์ </a>
</li>
<li class="nav-item"><a href="${root}/user/logout" class="nav-link">๋ก๊ทธ์์</a>
</li>
</ul>
UserController์์ฑ

package com.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
public String login() {
return "user/login";
}
@GetMapping("/join")
public String join() {
return "user/?";
}
@GetMapping("/modify")
public String modify() {
return "user/?";
}
@GetMapping("/logout")
public String logout() {
return "user/logout";
}
}

๊ธฐ์กด์ ๋ง๋ค์ด๋ join,login,modify.html ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๊ธฐ

login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>๋ฏธ๋ ํ๋ก์ ํธ</title>
<!-- Bootstrap CDN -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" />
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<!-- ์๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/menu.jsp" />
<div class="container" style="margin-top: 100px">
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-6">
<div class="card shadow">
<div class="card-body">
<div class="alert alert-danger">
<h3>๋ก๊ทธ์ธ ์คํจ</h3>
<p>์์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํด์ฃผ์ธ์</p>
</div>
<form action="index.html" method="post">
<div class="form-group">
<label for="user_id">์์ด๋</label> <input type="text" id="user_id"
name="user_id" class="form-control" />
</div>
<div class="form-group">
<label for="user_pw">๋น๋ฐ๋ฒํธ</label> <input type="password"
id="user_pw" name="user_pw" class="form-control" />
</div>
<div class="form-group text-right">
<button type="submit" class="btn btn-primary">๋ก๊ทธ์ธ</button>
<a href="join.html" class="btn btn-danger">ํ์๊ฐ์
</a>
</div>
</form>
</div>
</div>
</div>
<div class="col-sm-3"></div>
</div>
</div>
<!-- ํ๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/footer.jsp" />
</body>
</html>
join.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>๋ฏธ๋ ํ๋ก์ ํธ</title>
<!-- Bootstrap CDN -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" />
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<!-- ์๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/menu.jsp" />
<div class="container" style="margin-top: 100px">
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-6">
<div class="card shadow">
<div class="card-body">
<form action="login.html" method="post">
<div class="form-group">
<label for="user_name">์ด๋ฆ</label> <input type="text"
id="user_name" name="user_name" class="form-control" />
</div>
<div class="form-group">
<label for="user_id">์์ด๋</label>
<div class="input-group">
<input type="text" id="user_id" name="user_id"
class="form-control" />
<div class="input-group-append">
<button type="button" class="btn btn-primary">์ค๋ณตํ์ธ</button>
</div>
</div>
</div>
<div class="form-group">
<label for="user_pw">๋น๋ฐ๋ฒํธ</label> <input type="password"
id="user_pw" name="user_pw" class="form-control" />
</div>
<div class="form-group">
<label for="user_pw2">๋น๋ฐ๋ฒํธ ํ์ธ</label> <input type="password"
id="user_pw2" name="user_pw2" class="form-control" />
</div>
<div class="form-group">
<div class="text-right">
<button type="submit" class="btn btn-primary">ํ์๊ฐ์
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-sm-3"></div>
</div>
</div>
<!-- ํ๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/footer.jsp" />
</body>
</html>
modify.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>๋ฏธ๋ ํ๋ก์ ํธ</title>
<!-- Bootstrap CDN -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" />
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<!-- ์๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/menu.jsp" />
<div class="container" style="margin-top: 100px">
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-6">
<div class="card shadow">
<div class="card-body">
<form action="modify_user.html" method="post">
<div class="form-group">
<label for="user_name">์ด๋ฆ</label> <input type="text"
id="user_name" name="user_name" class="form-control"
value="ํ๊ธธ๋" disabled="disabled" />
</div>
<div class="form-group">
<label for="user_id">์์ด๋</label> <input type="text" id="user_id"
name="user_id" class="form-control" value="abc"
disabled="disabled" />
</div>
<div class="form-group">
<label for="user_pw">๋น๋ฐ๋ฒํธ</label> <input type="password"
id="user_pw" name="user_pw" class="form-control" value="1234" />
</div>
<div class="form-group">
<label for="user_pw2">๋น๋ฐ๋ฒํธ ํ์ธ</label> <input type="password"
id="user_pw2" name="user_pw2" class="form-control" value="1234" />
</div>
<div class="form-group">
<div class="text-right">
<button type="submit" class="btn btn-primary">์ ๋ณด์์ </button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-sm-3"></div>
</div>
</div>
<!-- ํ๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/footer.jsp" />
</body>
</html>
logout.jsp
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="root" value="${pageContext.request.contextPath}" />
<script>
alert('๋ก๊ทธ์์ ๋์์ต๋๋ค.')
location.href='${root}/' //๊ธฐ๋ณธํ์ด์ง๋ก ์ด๋
</script>
ํ ์คํธํ๊ธฐ
login

join

modify

logout ->alret ์ฐฝ ๋จ๊ณ ๋ฉ์ธ indexํ์ด์ง๋ก ๋์ด๊ฐ


'BACKEND > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ํ ์ด๋ธ ๋ง๋ค๊ธฐ(DB) (1) | 2023.10.26 |
|---|---|
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - BoardController, board(read,modify,write,delete.jsp)ํ์ด์ง ์์ฑ (1) | 2023.10.26 |
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ๊ธฐ๋ณธ ์ค์ ๋ฐ include(nav,footer ๋ถ๋ฆฌ) (0) | 2023.10.26 |
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - MVC์ ๊ตฌ์กฐ (0) | 2023.10.26 |
| ๋ด ๊ฒ์ํ ๋ง๋ค๊ธฐ - ๊ธฐ๋ณธ ์ค์ /DB์ฐ๊ฒฐ (1) | 2023.10.25 |