JSP/JSP게시판 만들기

JSP 게시판 만들기 / 로그인 기능 구현 [동빈나님 강의.4]

양상추상츄 2021. 9. 27. 22:02

https://www.youtube.com/watch?v=RYo3OGlRoJw&list=PLRx0vPvlEmdAZv_okJzox5wj2gG_fNh_6&index=4 

1. UserDAO.java 생성/설정 (mysql 데이터베이스하고 직접적인 연결 담당)

 

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://localhost:3306/BBS";

            String dbID = "root";

            String dbPassword = "root";

            Class.forName("com.mysql.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 = ?"; //?로 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; // 데이터베이스 오류
    }
}

 

2. loginAaction.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 name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 게시판 웹 사이트</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 if (result == -2) { 
            PrintWriter script = response.getWriter();
            script.println("<script>");
            script.println("alert('데이터베이스 오류가 발생했습니다.')");
            script.println("history.back()");
            script.println("</script>");
        }
    %>
</body>
</html>

 

3. mysql connector/J 설치 (java파일하고 데이터베이스 연결)

Platform Independent 선택후에 밑에거 다운받기

이후에 Connector 설정은 강의 참조

 

이클립스 설정

connector를 lib에 복사 붙여넣기