🎈 login_view.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login_db.jsp" method="post" name="frm">
<p>
<label>아이디 <input type="text" name="userid"> </label>
</p>
<p>
<label>비밀번호 <input type="password" name="userpw"> </label>
</p>
<input type="button" value="로그인" onclick="sendit();">
</form>
</body>
<script src="login.js">
</script>
</html>
- 로그인 버튼 클릭시 sendit() 호출
- login.js에서 validation check
- 유효성 검사 완료 후, login_db.jsp로 데이터 이동
🎈login.js
function sendit(){
let frm = document.frm;
let userid = frm.userid;
let userpw = frm.userpw;
if(!userid.value){
alert("아이디를 입력하세요");
userid.focus();
return false;
}
if(!userpw.value){
alert("비밀번호를 입력하세요");
userpw.focus();
return false;
}
frm.submit();
}
🎈 login_db.jsp 로 이동한 데이터로 DB 커넥션 하기위해 UserDAO login()메서드 생성
package com.koit.web.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.koit.web.beans.UserBean;
public class UserDAO {
Connection conn;
PreparedStatement pstm;
ResultSet rs;
public boolean join(UserBean user) {
boolean result = false;
String sql = "INSERT INTO TBL_USER values(?, ?, ?, ?, ?)";
int count = 0;
try {
conn = DBConnection.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1, user.getUserid());
pstm.setString(2, user.getUserpw());
pstm.setString(3, user.getUsername());
pstm.setString(4, user.getUsergender());
pstm.setString(5, user.getUserphone());
count = pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
if(count != 0) {
System.out.println("회원가입 성공");
result = true;
}else {
System.out.println("회원가입 실패");
result = false;
}
return result;
}
public boolean login(String userid, String userpw) {
boolean result = false;
String sql = "SELECT * FROM TBL_USER tu WHERE USERID = ? AND USERPW =?";
try {
conn = DBConnection.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1, userid);
pstm.setString(2, userpw);
rs = pstm.executeQuery();
if(rs.next()) {
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
- 사용자가 입력한 userid와 userpw를 파라미터로 받아서
DB에 같은 아이디와 비밀번호를 가진 레코드가 있는지 확인
- 만약 rs.next() 가 트루라면 레코드가 있다는 것이기 때문에
조건이 일치하는 회원이 있다는 것이다.
🎈 login_db.jsp - 컨트롤러가 jsp 이므로 MVC1 모델
<%@page import="com.koit.web.dao.UserDAO"%>
<%@page import="com.koit.web.dao.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String userid = request.getParameter("userid");
String userpw = request.getParameter("userpw");
UserDAO udao = new UserDAO();
boolean result = udao.login(userid, userpw);
if(result){
%>
<script type="text/javascript">
alert("로그인 완료");
location.href = "main_view.jsp"
</script>
<%
}else{
%>
<script type="text/javascript">
alert("로그인 실패");
history.go(-1);
</script>
<%
}
%>
</body>
</html>
- 사용자가 입력한 id, pw 를 파라미터로 받고 UserDAO login()에 파라미터로 사용
- 만약 결과가 true라면 로그인 완료 -> 메인페이지로 이동
- 결과가 false라면 다시 로그인 페이지로 이동
- history.go(-1); -> 바로 전 페이지로 이동