반응형
2020/01/16 - [JSP 게시판 만들기] - JSP 게시판 만들기 #3 회원 데이터베이스 구축
이어서 진행하겠습니다.
이번에는 UserDAO를 만들어 주겠습니다
DAO 는 데이터베이스 접근 객체로 회원 정보를 불러오거나 입력할때 사용됩니다.
package user;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDAO {
//Connection 데이터 베이스 접근하게 해주는 하나의 객체
private Connection conn;
private PreparedStatement pstmt;
//하나의 정보를 담을 수 있는 하나의 객체
private ResultSet rs;
//ctrl +shift + o 를 눌러 외부 라이브러리를 넣어줍니다
//생성자를 만들어줍니다.
public UserDAO() { //실제로 mysql에 접속할 수 있도록 도와줌
try {
//localhost:3306은 우리 컴퓨터에 설치된 mysql 서버 자체를 의미하고 bbs는 우리가 만든 테이블 이름입니다.
String dbURL = "jdbc:mysql://localhost:3306/BBS?serverTimezone=UTC";
String dbID ="root"; //db 계정
String dbPassword ="root"; //db 비밀번호
//driver는 mysql에 접속할 수 있도록 도와주는 하나의 라이브러리 매개체
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(dbURL, dbID, dbPassword);
}catch(Exception e) {
e.printStackTrace(); //오류가 무엇인지 출력
}
}
// 실제로 로그인을 시도하는 함수
public int login(String userID, String userPassword) { // 아이디와 비밀번호를 받아옴
//실제로 db에 입력할 sql문
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; // 데이터베이스 오류를 의미합니다.
}
}
여기까지 오셨으면 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 name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login page</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("alter('비밀번호가 틀립니다.')");
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('database에 오류가 발생하였습니다.')");
script.println("history.back()");
script.println("</script>");
}
%>
</body>
</html>
mysql에 접속하기 위해서 driver를 프로젝트에 추가해주어야 합니다.
mysql jdbc driver을 구글에 검색해서
다운로드 하고 압축을 풀어준 뒤
이 파일을
WEB-INF/lib/ 복사해서 넣어줍니다.
이제 실행을 해보겠습니다.
DB에서 회원관리 구축할때 홍길동 한명 넣어 준거 기억 나시나요?
전 gildong//1234 로 회원가입을 했습니다.
아직 main.jsp는 구현을 못했기 때문에 정상적으로 출력되는 걸 알 수 있습니다.
하지만 비밀번호 가 틀렸을경우 비밀번호가 틀렸다고 나오고
db오류일 경우 db오류라고 뜨게 되고
아이디가 없을 경우 아이디가 없다고 뜨게 됩니다.
반응형
'2020 > JSP 게시판 만들기' 카테고리의 다른 글
JSP 게시판 만들기 #6 회원가입 기능 구현 (0) | 2020.01.17 |
---|---|
JSP 게시판 만들기 #5 회원가입 페이지 디자인 (0) | 2020.01.17 |
JSP 게시판 만들기 #3 회원 데이터베이스 구축 (0) | 2020.01.16 |
JSP 게시판 만들기 #2 로그인 기능 (0) | 2020.01.16 |
JSP 게시판 만들기 #1 (0) | 2020.01.16 |