JSP에서 회원DB 테이블에 접급하기위해 DAO를 생성합니다
DAO 데이터베이스 접근 객체의 약자로 데이터베이스에 회원정보를 삽입하거나 삭제하는데 사용됩니다.
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"; // mySQL서버 BBS DB접근
String dbID = "root";
String dbPassword = "root";
Class.forName("com.mysql.jdbc.Driver"); //mySQL 접속 매개 라이브러리
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); // 사용자와 userID확인
rs = pstmt.executeQuery(); // 비교결과 저장
if (rs.next()) {
if(rs.getString(1).equals(userPassword)) // rs가 있는경우 userPassword와 비교
return 1; // 로그인 성공
else
return 0; // 비밀번호 불일치
}
return -1; // 아이디가 없음
} catch (Exception e) {
e.printStackTrace();
}
return -2; // 데이터베이스 오류
}
}
login.jsp에서 보내진 ID와 PW정보를 받아서 처리하는 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" /> // 현재 page에서 빈즈사용
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 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>
mySQL에 접속하기 위한 mysql jdbc driver를 설치합니다.
'개인프로젝트' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 6.회원가입기능 구현하기 (0) | 2024.01.20 |
---|---|
[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 5.회원가입 페이지 작성하기 (0) | 2024.01.20 |
[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 3.회원 데이터베이스 구축 (0) | 2024.01.19 |
[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 2.로그인 페이지 디자인 (0) | 2024.01.18 |
[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 1.작업 환경 만들기 - eclipse, tomcat 연결 hello world! (0) | 2024.01.18 |