로그인 JSP(2)

최현석·2022년 10월 20일
0

JSP

목록 보기
4/13

🧩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>
	// validation check,존재하는지 안하는지
	
	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;
		}

		// submit()
	 	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>
<!-- 

	로그인 기능 완성,
	로그인 성공 -> main_view.jsp
	로그인 실패 -> login_view.jsp
	
 -->
	
	<%
		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('로그인 실패!');
			// 이전페이지 이동
// 			location.href = "login_view.jsp";
			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
		alert("<%=user.getUsername()%>님 안녕하세요!");

	</script>

	<p>
		<!-- userid님,(이름) -->
		<%=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 >
	// 2: 로그인 페이지로 이동시킴.
// 	location.href="login_view.jsp";
</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에 저장된 데이터


  • 로그인 후 아이디 이름 출력

0개의 댓글