JSP/JSP게시판 만들기

JSP 게시판 만들기 / 회원가입 기능 구현하기 [동빈나님 강의.6]

양상추상츄 2021. 9. 28. 21:05

https://www.youtube.com/watch?v=v2mmPRLjJGw&list=PLRx0vPvlEmdAZv_okJzox5wj2gG_fNh_6&index=6 

 

UserDAO는 데이터를 가져오거나 넣는 데이터 접근 객체

 

1. UerDAO에 내용추가하기 (데이터 접근 객체)

 

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; // 데이터베이스 오류
    }

    //회원가입 정보 처리
    public int join(User user) {
        String SQL = "INSERT INTO USER VALUES (?, ?, ?, ?, ?)"; // user정보로 들어갈 5가지
        try {
            pstmt = conn.prepareStatement(SQL);
            pstmt.setString(1, user.getUserID()); //물음표에 들어갈내용이 무엇인지, SQL순서를 지키며 넣기
            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; // 데이터베이스오류
        }
    }

 

2. loginAction.jsp를 복사해서 joinAction.jsp로 변경한다.

 

 

3. joinAction.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"); %>
<!-- 밑의 코드를 써야 내용 받을 수 있음 -->
<!-- 각각의 정보를 가져와 user라는 객체완성 -->
<jsp:useBean id="user" class="user.User" scope="page" />
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<jsp:setProperty name="user" property="userName" />
<jsp:setProperty name="user" property="userGender" />
<jsp:setProperty name="user" property="userEmail" />

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<body>
    <% // java
    //빈공간에 대한 처리
        if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null 
        || user.getUserGender() == null || user.getUserEmail() == null) {
            PrintWriter script = response.getWriter();
            script.println("<script>");
            script.println("alert('입력이 안 된 사항이 있습니다.')");
            script.println("history.back()"); // 뒤로가기
            script.println("</script>");
        } else {
            UserDAO userDAO = new UserDAO(); //데이터 베이스에 접근 가능한 객체생성
            int result = userDAO.join(user);
            if (result == -1) {
                PrintWriter script = response.getWriter();
                script.println("<script>");
                script.println("alert('이미 존재하는 아이디입니다.')");
                script.println("history.back()");
                script.println("</script>");
            } else { // 회원가입이 되었을때 로그인 페이지로 넘어감,-1이 아닌경우 전부 넘어가도록함
                PrintWriter script = response.getWriter();
                script.println("<script>");
                script.println("location.href = 'main.jsp'"); //로그인된 화면
                script.println("</script>");
            }
        }

    %>
</body>
</html>

 

 

-> USE BBS

 

-> select * from user;