일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 보통의언어들
- 자바스크립트함수
- 호리에다카후미
- 밀라논다
- 가벼운마음
- 패배의신호
- NextJS
- 코딩천재
- 독서
- 마지막수업
- 박여름
- 책
- 기분을태도로만들지않는49가지 방법
- 역행자
- 사는이유
- 자바스크립트set
- 장이나
- 기분을태도로만들지않는49가지방법
- 보편의단어
- 동빈나
- 힐링그잡채
- 백수린
- 타입스크립트
- 그릿
- 더빠르게실패하기
- 장인서
- sanity
- 감정기복을줄이고더행복한삶을위한49가지지침서
- 영어공부
- 북스타그램
- Today
- Total
미미의 메모장
#2 자바+JSP로 메모장 만들기_데이터베이스구축+ 로그인 기능 구현 본문
로그인 페이지는 간단하게 id, password 만 받아서 입장 할 수 있도록 한다.
디자인은 이런 식으로 해보면 어떨까.
DB는 mysql을 사용하기.
로그인 화면에 필요한 사용자 테이블을 먼저 만들었다.
간단하게 id, password, name으로만 만들어놓고,
id는 유일해야하므로 PRIMARY KEY로 설정해둔다.
CREATE TABLE USER(
-> userID VARCHAR(20),
-> userPassword VARCHAR(20),
-> userName VARCHAR(20),
-> PRIMARY KEY(userID)
-> );
테이블 조회는
desc user;
하나의 데이터를 넣어 보자.
INSERT INTO USER VALUES('mimi','1111','손미미');
전체 조회는
select * from user;
저번에 sql문 공부한 게 새록새록 생각나는 중...
그 후에
User 클래스를 만들어 준다.
package user;
public class User {
private String userId;
private String userPassword;
private String name;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
JSP에서 회원 데이터베이스테이블에 접근할 수 있도록
DAO를 만들어 준다.
데이터베이스 접근 객체의 약자. id, password 만 받아서 입장 할 수 있도록 한다.
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/memo";
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 = ?";
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;
}
}
이런식으로 DAO를 만들어주고,
login 페이지에서는 버튼을 눌렀을 때, loginAction 페이지로 이동하도록 action을 추가한다.
loginAction 페이지에는 이런식으로 작성한다.
<%
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>");
}
%>
테스트 해보기 위해
mysql을 접속하기 위한 드라이버를 프로젝트에 추가해준다.
mysql jdbc driver 을 검색해서 다운로드 후
프로젝트 라이브러리 폴더 안에 복붙해준다.
서버 재부팅 후,
로그인 페이지에서 로그인 시도 해보면
아까 테이블에 추가했던 mimi 말고는
라고 뜨고,
mimi와 비밀번호를 입력했을 때,
요렇게 main 페이지로 잘 이동하는 것을 확인했다!
감격.

이지만 갈 길이 멀구나!!
'memo > Project🎨' 카테고리의 다른 글
#4 자바+JSP로 메모장 만들기_메인 화면 구현+메모 리스트 데이터베이스 구축 (0) | 2024.12.16 |
---|---|
#3 자바+JSP로 메모장 만들기_회원가입 페이지 구현 (0) | 2024.12.12 |
#1 자바+JSP로 메모장 만들기_디자인 초안 (1) | 2024.11.29 |