๋ก๊ทธ์์
๋ก๊ทธ์์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํฉ๋๋ค.
ํ๋ฉด
์์ ์์
1.
๋ก๊ทธ์์ ๋ฒํผ
2.
UserServlet.java
์ฝ๋
๋ก๊ทธ์์ ๋ฒํผ
โข
๋ก๊ทธ์์ ๋ฒํผ
<a class="dropdown-item" href="${ root }/users/logout">๋ก๊ทธ์์</a>
Java
๋ณต์ฌ
โข
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/layout/common.jsp" %>
<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 }/board/list">Board</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 }/login.jsp">๋ก๊ทธ์ธ</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="${ root }/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://i.imgur.com/fzADqJo.jpg" 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 }/users/my">๋ง์ด ํ์ด์ง</a></li>
<li><a class="dropdown-item" href="${ root }/users/update">ํ์์ ๋ณด ์์ </a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="${ root }/users/logout">๋ก๊ทธ์์</a></li>
</ul>
</div>
</li>
<%
}
%>
</ul>
</div>
</div>
</nav>
HTML
๋ณต์ฌ
UserServlet.java
โข
๋ก๊ทธ์์ ์ฒ๋ฆฌ ๋ถ๋ถ
// /logout - ๋ก๊ทธ์์
if( path.equals("/logout") ) {
System.out.println("๋ก๊ทธ์์...");
HttpSession session = request.getSession();
session.invalidate();
response.sendRedirect(root + "/");
}
Java
๋ณต์ฌ
โข
์ ์ฒด์ฝ๋
package board.servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.util.UUID;
import board.DTO.Users;
import board.Service.UserService;
import board.Service.UserServiceImpl;
@WebServlet("/users/*")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
/**
* [GET]
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// url : /users/idCheck
String root = request.getContextPath();
String path = request.getPathInfo(); // /idCheck
// /idCheck - ์์ด๋ ์ค๋ณต ํ์ธ
if( path.equals("/idCheck") ) {
System.out.println("์์ด๋ ์ค๋ณต ํ์ธ...");
String username = request.getParameter("username");
boolean check = userService.idCheck(username);
response.getWriter().print(check);
}
// /logout - ๋ก๊ทธ์์
if( path.equals("/logout") ) {
System.out.println("๋ก๊ทธ์์...");
HttpSession session = request.getSession();
session.invalidate();
response.sendRedirect(root + "/");
}
}
/**
* [POST]
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String root = request.getContextPath(); // /Board
String path = request.getPathInfo(); // /idCheck
// /join - ํ์๊ฐ์
if( path.equals("/join") ) {
System.out.println("ํ์๊ฐ์
์์ฒญ ์ฒ๋ฆฌ...");
String username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
Users user = Users.builder()
.id( UUID.randomUUID().toString() )
.username(username)
.password(password)
.name(name)
.email(email)
.build();
int result = userService.join(user);
// ํ์๊ฐ์
์ฑ๊ณต
if( result > 0 ) {
response.sendRedirect(root + "/");
}
// ํ์๊ฐ์
์คํจ
else {
response.sendRedirect(root + "/join.jsp?error=true");
}
}
// /login - ๋ก๊ทธ์ธ
if( path.equals("/login") ) {
String username = request.getParameter("username");
String password = request.getParameter("password");
Users user = Users.builder()
.username(username)
.password(password)
.build();
boolean result = userService.login(user);
// ๋ก๊ทธ์ธ ์ฑ๊ณต
if( result ) {
// ํ์ ์กฐํ
Users loginUser = userService.selectByUsername(username);
loginUser.setPassword(null);
// ์ธ์
์ ์ฌ์ฉ์ ์ ๋ณด ๋ฑ๋ก
HttpSession session = request.getSession();
session.setAttribute("loginId", user.getUsername());
session.setAttribute("loginUser", loginUser);
response.sendRedirect(root + "/");
}
// ๋ก๊ทธ์ธ ์คํจ
else {
response.sendRedirect(root + "/login.jsp?error=true");
}
}
}
}
Java
๋ณต์ฌ