CSS는 Bootstrap을 이용하였다.
압축파일을 다운로드한 뒤 프로젝트 폴더에 풀어주자.
이 파일들을 WebContent에 넣어주면 끝이다.
< index.jsp >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kanari 웹 사이트</title>
</head>
<body>
<script>
location.href = 'login.jsp';
</script>
</body>
</html>
|
cs |
< login.jsp >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width" initial-scale="1">
<link rel="stylesheet" href="css/bootstrap.min.css">
<title>Kanari 웹 사이트</title>
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<ul class="navbar-nav navbar-white">
<li class="nav-item active"><a class="nav-link" href="#">메인</a></li>
<li class="nav-item"><a class="nav-link" href="#">게시판</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown"> Sign in </a>
<div class="dropdown-menu">
<a class="dropdown-item" href="login.jsp">로그인</a>
<a class="dropdown-item" href="join.jsp">회원가입</a>
</div>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="col-lg-4">
<div class="jumbotron" style="padding-top: 20px;">
<form method="post" action="loginAction.jsp">
<h3 style="text-align: center;"> 로그인화면 </h3>
<div class="form-group">
<input type="text" class="form-control" placeholder="아이디" name="userID" maxlength=100px>
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="비밀번호" name="userPassword" maxlength=100px>
</div>
<input type="submit" class="btn btn-primary form-control" value="로그인">
</form>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
|
cs |
'
MySQL과 jdbc를 연동하기 위해 MySQL Connector를 받아주자
https://dev.mysql.com/downloads/connector/j/
MySQL :: Download Connector/J
MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.
dev.mysql.com
똑같이 압출을 프로젝트 폴더에 푼 뒤
여기에다가 옮겨주자.
프로젝트의 Properties에 들어가 Libraries 탭에 들어간 뒤 Add JARs를 눌러 아까 추가한 파일을 추가해주자.
MySQL을 연동 해주자
< UserDAO.java >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package user;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDAO {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public UserDAO() {
try {
String dbURL = "jdbc:mysql://127.0.0.1:3306/BBS?autoReconnect=true&&serverTimezone=UTC";
String dbID = "root";
String dbPassword = "root";
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
e.printStackTrace();
}
}
public int login(String userID, String userPassword) {
String SQL = "SELECT userPassword FROM USER WHERE userID = ?";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
rs = pstmt.executeQuery();
if (rs.next()) {
if (rs.getString(1).equals(userPassword)) {
return 1; //로그인 성공
} else
return 0; // 비밀번호 불일치
}
return -1; // 아이디가 존재 하지 않음
} catch (Exception e) {
e.printStackTrace();
}
return -2; // 데이터베이스 오류
}
}
|
cs |
TimeZone오류와
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver' 오류가 발생하였는데 해결방법은 간단하다.
TimeZone오류는 dbURL에 &serverTimezone=UTC을 추가하면 된다. 인터넷에 ;serverTimezone=UTC이라 써져있는 글이 몇 개 있는데 ;를 쓰면 오류가 난다.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'은
dbDriver를 com.mysql.cj.jdbc.Driver로 바꿔주면 된다.
< loginAction.jsp >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDAO" %>
<%@ page import="java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8"); %> <!-- 받는 모든 문자열을 UTF-8로 인코딩한다. -->
<jsp:useBean id="user" class="user.User" scope="page" /> <!-- 현재 페이지에서만 자바빈을 사용가능하게 설정 -->
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kanari 웹 사이트</title>
</head>
<body>
<%
UserDAO userDAO = new UserDAO();
int result = userDAO.login(user.getUserID(), user.getUserPassword());
if(result == 1){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
else if(result == 0){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('비밀번호가 틀립니다.')");
script.println("history.back()");
script.println("</script>");
}
else if(result == -1){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('존재하지 않는 아이디 입니다.')");
script.println("history.back()");
script.println("</script>");
}
else {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('데이터 베이스 오류 발생')");
script.println("history.back()");
script.println("</script>");
}
%>
</body>
</html>
|
cs |
로그인을 처리해주는 jsp다. UserDAO.java의 login 메소드를 호출해서 결괏값을 받아 온 뒤 처리해준다.
user테이블에 데이터를 넣은 뒤 제대로 작동하는지 확인해보자.
- 아이디가 존재하지 않는 경우
- 비밀번호가 틀린 경우
- 로그인 성공
아직 main.jsp를 만들지 않아 404오류가 뜬다.
'JSP' 카테고리의 다른 글
커뮤니티 게시판 만들기 06 - 세션 (0) | 2020.07.21 |
---|---|
커뮤니티 게시판 만들기 05 - 회원가입 구현 (0) | 2020.07.21 |
커뮤니티 게시판 만들기 04 - 회원가입 페이지 구현 (0) | 2020.07.20 |
커뮤니티 게시판 만들기 02 - 회원정보 데이터베이스 구현 (0) | 2020.07.14 |
커뮤니티 게시판 만들기 01 - 개발환경 셋팅 (0) | 2020.07.13 |
댓글