🧩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="text" name="userpw"></label>
</p>
<input type="button" value="로그인" onclick="sendit()">
</form>
</body>
<script>
function sendit() {
let fm = document.frm;
let userid = fm.userid;
let userpw = fm.userpw;
if (userid.value == "") {
alert("아이디를 입력하세요");
userid.focus();
return false;
}
if(userpw.value==""){
alert("비번을 입력하세요");
userpw.focus();
return false;
}
fm.submit();
}
</script>
</html>
🧩login_db.jsp
<%@page import="com.koreait.web.beans.UserBean"%>
<%@page import="com.koreait.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");
String username = request.getParameter("username");
UserDAO user = new UserDAO();
UserBean userBean = user.login(userid, userpw);
if(userBean != null){
// 로그인 성공
session.setAttribute("session_id", userBean);
%>
<script>
location.href = "main_view.jsp";
</script>
<%
}else{
// 로그인 실패
%>
<script>
alert('로그인 실패!');
history.go(-1);
</script>
<%
}
%>
</body>
</html>
🧩main_view.jsp
<%@page import="com.koreait.web.beans.UserBean"%>
<%@ 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 = (String)session.getAttribute("session_id");
// 아이디 이름 가져올때
// session_id로 객체를 통으로 받아온걸 user로 꺼내온다
UserBean user = (UserBean)session.getAttribute("session_id");
if(user != null){
%>
<script >
<%-- alert("<%=userid%>님 안녕하세요!"); --%>
alert("<%=user.getUsername()%>님 안녕하세요!");
</script>
<p>
<%=user.getUserid() %> 님, <%=user.getUsername() %>
<input type="button" value="로그아웃" onclick="location.href='logout_db.jsp'">
</p>
<%
}else{
%>
<script >
alert("로그인 후 이용하세요!");
location.href="login_view.jsp";
</script>
<%
}
%>
</body>
</html>
🧩logout_db.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>
<%
// 1: 기존의 세션 데이터를 모두 삭제(세션 값 초기화하기)
session.invalidate();
// 2: 로그인 페이지로 이동시킴.
response.sendRedirect("login_view.jsp");
%>
<script >
</script>
</body>
</html>
🧩UserDAO.java
package com.koreait.web.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.koreait.web.beans.UserBean;
public class UserDAO {
Connection conn;
PreparedStatement pstm;
ResultSet rs;
public boolean join(UserBean user) {
boolean result = false;
// INSERT INTO TBL_USER VALUES ('test','1234','user1','M','01012345678')
String sql = "INSERT INTO TBL_USER VALUES (?,?,?,?,?)";
int cnt = 0;
try {
conn=DBConnection.getConnection();
pstm=conn.prepareStatement(sql);
// param값 setting
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());
cnt = pstm.executeUpdate();
}catch (Exception e) {
e.printStackTrace();
}
if(cnt != 0) {
// 성공
result = true;
}else {
// 실패
result = false;
}
return result;
}
// 로그인 후 아이디, 이름 출력 할 때 사용
public UserBean login(String userid, String userpw) {
UserBean user = null;
String sql = "SELECT * FROM TBL_USER tu WHERE USERID = ? AND USERPW = ?";
try {
conn=DBConnection.getConnection();
pstm=conn.prepareStatement(sql);
// param값 setting
pstm.setString(1,userid);
pstm.setString(2, userpw);
rs = pstm.executeQuery();
if(rs.next()) {
user = new UserBean();
user.setUserid(rs.getString(1));
user.setUserpw(rs.getString(2));
user.setUsername(rs.getString(3));
user.setUsergender(rs.getString(4));
user.setUserphone(rs.getString(5));
}
}catch (Exception e) {
e.printStackTrace();
}
return user;
}
// 파라미터 값이 더 많아지면 객체로 받아온다(userbean)
// 로그인 했는지 아닌지 값을 넘겨받음
// 아이디만 출력 할 때 사용
// public boolean login(String userid, String userpw) {
// boolean flag = false;
//
// String sql = "SELECT * FROM TBL_USER tu WHERE USERID = ? AND USERPW = ?";
//
//
// try {
// conn=DBConnection.getConnection();
// pstm=conn.prepareStatement(sql);
//
// // param값 setting
// pstm.setString(1,userid);
// pstm.setString(2, userpw);
//
// rs = pstm.executeQuery();
//
// // 값이 존재한다면 true
// if(rs.next()) {
// flag = true;
// }
//
// }catch (Exception e) {
// e.printStackTrace();
// }
//
//
// return flag;
//
// }
}
🧩실행
- 로그인 창
- db에 저장된 데이터
- 로그인 후 아이디 이름 출력