[JSP]ログイン機能を実現
UserDAO.java
userパッケージ内にUserDAOクラスを作成します.
DAO:データベース・アクセス・オブジェクトの略称で、データベースからメンバー情報データを読み込むか、データベースにメンバー情報を格納します.
MySQL jdbc Driver
プラットフォームから独立したダウンロードを選択
次のmysql-connector-java-8.0.28.jarをWEB-INF>libに移動します.
プロジェクトフォルダで右クリックし、Properties>Java Build Pathに移動します.
Add JARs... クリックするとmysql-connector-java-8.0.28.jarを選択します.
検査結果
入力された情報が無効です
入力された情報が正しい場合
userパッケージ内にUserDAOクラスを作成します.
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;
// ----------- MySQL 접속 ----------- //
// 생성자
public UserDAO() {
// try-catch 예외처리
try {
// localhost:3306 는 MySQL 서버 자체를 의미하고, BBS는 데이터베이스
String dbURL = "jdbc:mysql://localhost:3306/BBS";
String dbID = "root";
String dbPassword = "root";
// mysql Driver 찾기
// Driver : mysql에 접속할 수 있도록 매개체 역할을 하는 하나의 라이브러리
Class.forName("com.mysql.jdbc.Driver");
// dbURL에 dbID, dbPassword로 접속
// 접속이 완료되면 conn 객체 안에 접속된 정보가 담기게 되는 것!
conn = DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
e.printStackTrace(); // 어떤 오류인지 출력
}
}
// ----------- 로그인 ----------- //
// 이 로그인 기능이 호출되는 페이지가 바로 loginAction.jsp
public int login(String userID, String userPassword) {
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=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ 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 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<!-- BODY -->
<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 jdbc DriverMySQL jdbc Driver
プラットフォームから独立したダウンロードを選択
次のmysql-connector-java-8.0.28.jarをWEB-INF>libに移動します.
プロジェクトフォルダで右クリックし、Properties>Java Build Pathに移動します.
Add JARs... クリックするとmysql-connector-java-8.0.28.jarを選択します.
検査結果
入力された情報が無効です
入力された情報が正しい場合
Reference
この問題について([JSP]ログイン機能を実現), 我々は、より多くの情報をここで見つけました https://velog.io/@savin/JSP-로그인-기능-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol