수업(국비지원)/JSP

[JSP] MVC MODEL1 방식 - 로그인(loginForm, login)

byeolsub 2023. 4. 19. 17:16

📌 loginForm.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>
<script type="text/javascript">
	function inputcheck(f) {
		if(f.id.value=='') {
			alert("아이디를 입력하세요")
			f.id.focus()
			return false
		}
		if(f.pass.value == '')
			alert("비밀번호를 입력하세요")
			f.pass.focus()
			return false
	    }
	}
</script>

</head>
<body>
<form action="login.jsp" method="post" name="f" onsubmit="return inputcheck(this)">
<table>
	<caption>로그인</caption>
		<tr><th>아이디</th><td><input type="text" name="id"></td></tr>
		<tr><th>비밀번호</th><td><input type="password" name="pass"></td></tr>
	<tr>
		<td colspan="2">
			<input type= "submit" value="로그인">
			<input type= "button" value="회원가입"
							onclick="location.href='joinForm.jsp'">
		<input type="button" value="아이디찾기" onclick="win_open('idForm')">
		<input type="button" value="비밀번호찾기" onclick="win_open('pwForm')">
	</tr>
</table>
</form>
</body>
</html>

 


 

📌 login.jsp

<%-- /jsp2/src/main/webapp/model1/member/login.jsp 
	1. 아이디, 비밀번호 파라미터를 변수 저장 
    2. db 정보를 읽기. id에 해당하는 db정보를 읽어서 Member 객체에 저장 
    	 Member MemberDao.selectOne(id);
    3. 아이디와 비밀번호 검증. 
     - 아이디가 없는 경우      
       아이디가 없습니다. 메세지확인. loginForm.jsp 페이지 이동
     - 아이디 존재. 비밀번호가 틀린경우   
       비밀번호오류 메세지확인. loginForm.jsp 페이지 이동
     - 아이디 존재. 비밀번호가 맞는경우 => 정상적인 로그인.
       session 객체에 로그인 정보 저장.
       main.jsp로 페이지 이동.
--%>
<%@page import="model.Member"%>
<%@page import="model.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//1아이디, 비밀번호 파라미터를 변수 저장
	String id = request.getParameter("id");
	String pass = request.getParameter("pass");
	//2.db정보를 읽기. id에 해당하는 db 정보를 읽어서 Member 객체에 저장
	MemberDao dao = new MemberDao(); //DataBase에서 
	//id 존재 : db의 내용저장, id 존재하지 않으면 : null
	Member mem = dao.selectOne(id); //여기에 id라는 값 넣어서 있는지 확인
	String msg = null;
	String url = null;
	if(mem == null) {
		msg = "아이디가 틀립니다.";
		url = "loginForm.jsp";
		
	} else if (!pass.equals(mem.getPass())) {
		msg = "비밀번호가 틀립니다.";
		url = "loginForm.jsp";
		
	} else {
		session.setAttribute("login",id); //session에 로그인 정보저장
		msg = "반갑습니다."+ mem.getName() + "님";
		url = "main.jsp";
	}
%>	
<script>
	alert("<%=msg %>")
	location.href="<%= url %>"
</script>

 

 

📌 MemberDao.java에 selectone 추가

	**//매개변수 자료형 Stirng id**
	public Member selectOne(String id) {
		Connection conn = DBConnection.getConnection();
		String sql = "select * From member where id=?";
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, sql);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				Member mem = new Member();
				mem.setId(rs.getString("id"));
				mem.setPass(rs.getString("pass"));
				mem.setName(rs.getString("name"));
				mem.setGender(rs.getInt("gender"));
				mem.setTel(rs.getString("tel"));
				mem.setEmail(rs.getString("email"));
				mem.setPicture(rs.getString("picture"));
				return mem;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBConnection.close(conn, pstmt, null);
		}
		return null;
	}
}