jspblog : user login/logout
This commit is contained in:
@@ -54,6 +54,12 @@
|
|||||||
<artifactId>gson</artifactId>
|
<artifactId>gson</artifactId>
|
||||||
<version>2.8.6</version>
|
<version>2.8.6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>jstl</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.example.jspblog.domain.user;
|
|||||||
|
|
||||||
import com.example.jspblog.config.DB;
|
import com.example.jspblog.config.DB;
|
||||||
import com.example.jspblog.domain.user.dto.JoinReqDto;
|
import com.example.jspblog.domain.user.dto.JoinReqDto;
|
||||||
|
import com.example.jspblog.domain.user.dto.LoginReqDto;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
@@ -36,10 +37,6 @@ public class UserDao {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void usernameCheck() { // 아이디 중복 체크
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void findById() { // 회원정보보기
|
public void findById() { // 회원정보보기
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -66,4 +63,35 @@ public class UserDao {
|
|||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public User findByUsernameAndPassword(LoginReqDto dto) {
|
||||||
|
String sql = "select id, username, email, address from user where username=? and password=?";
|
||||||
|
|
||||||
|
Connection conn = DB.getConnection();
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
|
||||||
|
if (conn != null) {
|
||||||
|
try {
|
||||||
|
pstmt = conn.prepareStatement(sql);
|
||||||
|
pstmt.setString(1, dto.getUsername());
|
||||||
|
pstmt.setString(2, dto.getPassword());
|
||||||
|
rs = pstmt.executeQuery();
|
||||||
|
if (rs.next()) {
|
||||||
|
return User.builder()
|
||||||
|
.id(rs.getInt("id"))
|
||||||
|
.username(rs.getString("username"))
|
||||||
|
.email(rs.getString("email"))
|
||||||
|
.address(rs.getString("address"))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
DB.close(conn, pstmt, rs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public User 로그인(LoginReqDto dto) {
|
public User 로그인(LoginReqDto dto) {
|
||||||
return null;
|
return userDao.findByUsernameAndPassword(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int 회원수정(UpdateReqDto dto) {
|
public int 회원수정(UpdateReqDto dto) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.example.jspblog.web;
|
package com.example.jspblog.web;
|
||||||
|
|
||||||
|
import com.example.jspblog.domain.user.User;
|
||||||
import com.example.jspblog.domain.user.dto.JoinReqDto;
|
import com.example.jspblog.domain.user.dto.JoinReqDto;
|
||||||
import com.example.jspblog.domain.user.dto.LoginReqDto;
|
import com.example.jspblog.domain.user.dto.LoginReqDto;
|
||||||
import com.example.jspblog.service.UserService;
|
import com.example.jspblog.service.UserService;
|
||||||
@@ -29,42 +30,61 @@ public class UserController extends HttpServlet {
|
|||||||
String cmd = request.getParameter("cmd");
|
String cmd = request.getParameter("cmd");
|
||||||
UserService userService = new UserService();
|
UserService userService = new UserService();
|
||||||
|
|
||||||
if(cmd.equals("loginForm")) {
|
switch (cmd) {
|
||||||
response.sendRedirect("user/loginForm.jsp");
|
case "loginForm":
|
||||||
} else if (cmd.equals("login")) {
|
response.sendRedirect("user/loginForm.jsp");
|
||||||
String username = request.getParameter("username");
|
break;
|
||||||
String password = request.getParameter("password");
|
case "login": {
|
||||||
LoginReqDto dto = new LoginReqDto();
|
String username = request.getParameter("username");
|
||||||
dto.setUsername(username);
|
String password = request.getParameter("password");
|
||||||
dto.setPassword(password);
|
LoginReqDto dto = new LoginReqDto();
|
||||||
userService.로그인(dto);
|
dto.setUsername(username);
|
||||||
} else if (cmd.equals("joinForm")) {
|
dto.setPassword(password);
|
||||||
response.sendRedirect("user/joinForm.jsp");
|
User userEntity = userService.로그인(dto);
|
||||||
} else if (cmd.equals("join")) {
|
if (userEntity != null) {
|
||||||
String username = request.getParameter("username");
|
request.getSession().setAttribute("principal", userEntity);
|
||||||
String password = request.getParameter("password");
|
response.sendRedirect("index.jsp");
|
||||||
String email = request.getParameter("email");
|
} else {
|
||||||
String address = request.getParameter("address");
|
Script.back(response, "로그인 실패");
|
||||||
JoinReqDto dto = new JoinReqDto();
|
}
|
||||||
dto.setUsername(username);
|
break;
|
||||||
dto.setPassword(password);
|
|
||||||
dto.setEmail(email);
|
|
||||||
dto.setAddress(address);
|
|
||||||
int result = userService.회원가입(dto);
|
|
||||||
if (result == 1) {
|
|
||||||
response.sendRedirect("index.jsp");
|
|
||||||
} else {
|
|
||||||
Script.back(response, "회원가입실패");
|
|
||||||
}
|
}
|
||||||
} else if (cmd.equals("usernameCheck")) {
|
case "joinForm":
|
||||||
BufferedReader br = request.getReader();
|
response.sendRedirect("user/joinForm.jsp");
|
||||||
String username = br.readLine();
|
break;
|
||||||
int result = userService.유저네임중복체크(username);
|
case "join": {
|
||||||
PrintWriter out = response.getWriter();
|
String username = request.getParameter("username");
|
||||||
if (result == 1) {
|
String password = request.getParameter("password");
|
||||||
out.print("ok");
|
String email = request.getParameter("email");
|
||||||
} else {
|
String address = request.getParameter("address");
|
||||||
out.print("fail");
|
JoinReqDto dto = new JoinReqDto();
|
||||||
|
dto.setUsername(username);
|
||||||
|
dto.setPassword(password);
|
||||||
|
dto.setEmail(email);
|
||||||
|
dto.setAddress(address);
|
||||||
|
int result = userService.회원가입(dto);
|
||||||
|
if (result == 1) {
|
||||||
|
response.sendRedirect("index.jsp");
|
||||||
|
} else {
|
||||||
|
Script.back(response, "회원가입실패");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "usernameCheck": {
|
||||||
|
BufferedReader br = request.getReader();
|
||||||
|
String username = br.readLine();
|
||||||
|
int result = userService.유저네임중복체크(username);
|
||||||
|
PrintWriter out = response.getWriter();
|
||||||
|
if (result == 1) {
|
||||||
|
out.print("ok");
|
||||||
|
} else {
|
||||||
|
out.print("fail");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "logout": {
|
||||||
|
request.getSession().invalidate();
|
||||||
|
response.sendRedirect("index.jsp");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||||
|
|
||||||
<%@ include file="../layout/header.jsp"%>
|
<%@ include file="../layout/header.jsp"%>
|
||||||
|
|
||||||
|
<h1>세션 테스트</h1>
|
||||||
|
로그인 유저네임 : ${sessionScope.principal.username}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
@@ -13,20 +15,40 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
|
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
|
||||||
<a class="navbar-brand" href="#">블로그</a>
|
<a class="navbar-brand" href="${pageContext.request.contextPath}/index.jsp">블로그</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="collapsibleNavbar">
|
|
||||||
<ul class="navbar-nav">
|
<c:choose>
|
||||||
<li class="nav-item">
|
<c:when test="${sessionScope.principal != null}">
|
||||||
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=joinForm">회원가입</a>
|
<div class="collapse navbar-collapse" id="collapsibleNavbar">
|
||||||
</li>
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=loginForm">로그인</a>
|
<a class="nav-link" href="${pageContext.request.contextPath}/board?cmd=writeForm">글쓰기</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
<li class="nav-item">
|
||||||
</div>
|
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=updateForm">회원정보</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=logout">로그아웃</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<div class="collapse navbar-collapse" id="collapsibleNavbar">
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=joinForm">회원가입</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="${pageContext.request.contextPath}/user?cmd=loginForm">로그인</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</nav>
|
</nav>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,22 @@
|
|||||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||||
|
|
||||||
<%@ include file="../layout/header.jsp"%>
|
<%@ include file="../layout/header.jsp"%>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<form action="${pageContext.request.contextPath}/user?cmd=login" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="username">Username:</label>
|
||||||
|
<input name="username" type="text" class="form-control" placeholder="Enter username" id="username" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="pwd">Password:</label>
|
||||||
|
<input name="password" type="password" class="form-control" placeholder="Enter password" id="pwd" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">로그인</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user