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