[JSP] - 회원가입 + 로그인 DB 처리
○ 회원가입 DB 처리 |
// user 패키지 - UserDTO.java (데이터베이스 전송 객체) package user; public class UserDTO { String userID; String userPW;
public String getUserID() { return userID; } public void setUserID(String userID) { this.userID = userID; } public String getUserPW() { return userPW; } public void setUserPW(String userPW) { this.userPW = userPW; } } // user 패키지 - UserDAO.java (데이터베이스 접근 객체) package user; import util.DatabaseUtil; // util 패키지의 DatabaseUtil.java 사용하기 위해서 public class UserDAO { // 회원가입을 위한 함수 public int join(String userID, String userPW) { String SQL = "INSERT INTO USER VALUES (?, ?)"; try { Connection conn = DatabaseUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(SQL); pstmt.setString(1, userID); pstmt.setString(2, userPW); // 정상적 데이터이면 1 반환 return pstmt.executeUpdate(); }catch(Exception e) { e.printStackTrace(); } // 오류 발생 시 -1 반환 return -1; } } // 로그인을 위한 함수 public int login(String userInputID, String userInputPW) { String userPW; String SQL = "SELECT * FROM USER WHERE userID = ?"; try { Connection conn = DatabaseUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(SQL); ResultSet rs = null;
pstmt.setString(1, userInputID); rs = pstmt.executeQuery();
if(rs.next()) { //해당 db id에 맞는 비번을 변수에 넣고 userPW = rs.getString("userPW");
if(userPW.equals(userInputPW)) { return 1; // 입력받은 id에서 db꺼랑 비교해 맞으면 1 } else { return 0; // 아니면 0 } }
}catch(Exception e) { e.printStackTrace(); } // 오류 발생 시 -1 반환 return -1; } // util 패키지 - DatabaseUtil.java (데이터베이스 연결) package util; public class DatabaseUtil {
// DB의 접속 함수 public static Connection getConnection() { try { String dbURL = "jdbc:mysql://localhost:3306/test"; String dbID = "root"; String dbPW = "wlgns930";
Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection(dbURL, dbID, dbPW);
}catch(Exception e) { e.printStackTrace(); } return null; } } // userJoin.jsp <form action = "./userJoinAction.jsp" method="post"> <input type="text" name="userID"> <input type="password" name="userPW"> <input type="submit" value="회원가입"> </form> // userJoinAction.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 특정 라이브러리를 가져오기위한 임포트 --> <%@ page import="user.UserDTO" %> <%@ page import="user.UserDAO" %> <!-- 자바스크립트 출력하기 위한 --> <%@ page import="java.io.PrintWriter" %> <% request.setCharacterEncoding("UTF-8"); String userID = null; String userPW = null;
// 입력이 되었다면 변수로 데이터값을 넣어줌 if(request.getParameter("userID") != null){ userID = (String)request.getParameter("userID"); } if(request.getParameter("userPW") != null){ userPW = (String)request.getParameter("userPW"); }
if(userID == null || userPW == null){ // 자바스크립트 구문으로 입력 안된 부분이 있으면 알람을 띄우고 // history.back() 통해 전 페이지로 이동하게 한다 PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안된 부분이 있습니다');"); script.println("history.back();"); script.println("</script>"); script.close(); return; } // 정상 입력 되었다면 디비에 넣어주자 1이면 정상, -1이면 오류발생 UserDAO userDAO = new UserDAO(); int result = userDAO.join(userID, userPW);
// 회원가입 후 알림창을 띄운 후 index.jsp로 이동 PrintWriter script = response.getWriter(); script .println("<script>alert('계정이 등록 되었습니다'); location.href='./index.jsp';</script>"); script .flush(); %> // userLogin.jsp <form action="./userLoginAction.jsp" method="post"> <input type="text" name="userID"> <input type="password" name="userPW"> <input type="submit" value="로그인"> </form> // userLoginAction.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 특정 라이브러리를 가져오기위한 임포트 --> <%@ page import="user.UserDTO"%> <%@ page import="user.UserDAO"%> <!-- 자바스크립트 출력하기 위한 --> <%@ page import="java.io.PrintWriter"%> <% request.setCharacterEncoding("UTF-8"); String userID = null; String userPW = null;
// 입력이 되었다면 변수로 데이터값을 넣어줌 if(request.getParameter("userID") != null){ userID = (String)request.getParameter("userID"); } if(request.getParameter("userPW") != null){ userPW = (String)request.getParameter("userPW"); }
if(userID == null || userPW == null){ // 자바스크립트 구문으로 입력 안된 부분이 있으면 알람을 띄우고 // history.back() 통해 전 페이지로 이동하게 한다 PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안된 부분이 있습니다');"); script.println("history.back();"); script.println("</script>"); script.close(); return; } // 정상 입력 되었다면 디비에 넣어주자 1이면 정상, -1이면 오류발생 UserDAO userDAO = new UserDAO(); int result = userDAO.login(userID, userPW); if(result == 1){ // 로그인 후 index.jsp로 이동 PrintWriter script = response.getWriter(); script.println("<script>alert('로그인 성공'); location.href='./index.jsp';</script>"); script.flush(); } else if (result == 0 ){ // 아이디와 패스워드가 일치하지 않는 경우 PrintWriter script = response.getWriter(); script.println("<script>alert('아이디와 비밀번호가 일치하지 않습니다'); location.href='./login.jsp';</script>"); script.flush(); } %> |
'JSP 개발 참고' 카테고리의 다른 글
[JSP] - 파일 enctype="multipart/form-data" 사용 시 request.getParameter null 해결방법 (0) | 2018.05.02 |
---|---|
[JSP] - 네이버 스마트에디터 사용 (0) | 2018.05.02 |
[JSP] - 이미지 DB 처리 및 이미지 출력 (3) | 2018.05.02 |
[JSP] - 세션 처리 및 로그아웃 (0) | 2018.05.01 |
[JSP] - 회원가입 시 아이디 중복체크 (0) | 2018.05.01 |