JSP 게시판 만들기 CHAPTER 4 (자바스크립트) - 로그인 기능 구현

- 로그인 기능 구현해주기 -

 

JSP에서 회원 데이터베이스에 접근을 할 수 있게 DAO를 만들어 주겟습니다.

이렇게 UserDAO.java 클래스를 만들어 주도록 합니다.

package user;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserDAO {    //dao란 데이터베이스 접근 객체 Data Access Object 로 db에서 회원정보를 불러오거나 넣을 때 사용한다.
	
	private Connection conn;     // db에 접근 할 수 있게 해준다.
	private PreparedStatement pstmt;
	private ResultSet rs;
	
    //mysql에 연결
	public UserDAO() {
		try {
			String dbURL = "jdbc:mysql://localhost:3306/BBS?serverTimezone=Asia/Seoul";
			String dbID = "root";
			String dbPassword = "password";
			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;   // 데이터베이스 오류
		
	}
	
	public int join(User user) {
		String SQL = "INSERT INTO USER VALUES (?, ?, ?, ?, ?)";
		try {
			pstmt = conn.prepareStatement(SQL);
			pstmt.setString(1, user.getUserID());
			pstmt.setString(2, user.getUserPassword());
			pstmt.setString(3, user.getUserName());
			pstmt.setString(4, user.getUserGender());
			pstmt.setString(5, user.getUserEmail());
			return pstmt.executeUpdate();
		}catch (Exception e) {
			e.printStackTrace();
		}
		return -1; //데이터베이스 오류
	}

}

 이렇게 로그인이 가능하도록 DAO를 만들어 주도록 합니다.

이 후에 로그인이 되었을 때 다른 화면(loginaction.jsp)으로 넘어 가게 되는데 하나 만들어 주도록 합니다. 

이렇게 loginAction.jsp라는 파일을 만들어 주고

<%@ 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"); %>
<jsp:useBean id="user" class="user.User" scope="page"/>
<jsp:setProperty property="userID" name="user"/>
<jsp:setProperty property="userPassword" name="user"/>
<!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">
<title>>JSP 게시판 웹 사이트</title>
</head>
<body>
 <%
  UserDAO userDAO = new UserDAO();
  int result = userDAO.login(user.getUserID(), user.getUserPassword());
 %>
 <script type="text/javascript">
  var result = <%=result%>;
  if(result == 1){
   location.href = 'main.jsp';
  }else if(result == 0){
   alert('비밀번호가 틀립니다.');
   history.back();
  }else if(result == -1){
   alert('존재하지 않는 아이디입니다.');
   history.back();
  }else if(result == -2){
   alert('DB 오류가 발생했습니다.');
   history.back();
  }
 </script>
</body>
</html>

위와 같이 추가를 해줍니다.

이렇게 하면 로그인 기능이 구현 되게 됩니다.

이제 프로젝트가 mysql에 접근을 할 수 있게 파일을 하나 추가해 주어야 하는데요

mysql jdbc driver를 설치해 주도록 합니다.

- mysql과 jsp가 연결 될 수 있도록 해줍니다.

https://dev.mysql.com/downloads/windows/installer/8.0.html

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.18 18.6M (mysql-installer-web-community-8.0.18.0.msi) MD5: c509966c1033462027a009cc51a98c74 | Signatur

dev.mysql.com

 

 

사이트에서 설치해 주시면 됩니다.

폴더를 c드라이브에 jsp라는 폴더안에 받아주시고, mysql-connector-java-8.0.16이라는 파일을 아래와 같이

lib안에 붙여 넣어 주도록 합니다.

 

이제 mysql connector 라이브 러리를 추가해 주도록 합니다.

이렇게 mysql-connector를 우측 add jars를 통하여 추가를 해주도록 합니다.

이렇게 mysql과 연결이 되어 로그인 처리가 가능해 집니다.

 

https://alisyabob.tistory.com 

 

it 공부 끄적이기

손성진

alisyabob.tistory.com

 

댓글

Designed by JB FACTORY

1 2 3 4 5 6 7 8 1 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10