Cute Happy Ghost
본문 바로가기
Project/Semi

2-1. 로그인(jsp를 활용한 간단 로그인)

by JENN_tech7 2021. 1. 30.
728x90
SMALL
  • 로그인버튼을 누르면 로그인창으로 이동한다

 

 

  • 로그인이 성공했을 때는 로그인버튼이 로그아웃으로 바뀌며 회원가입부분은 마이룸으로 바뀐다

 

 

 

 

 

 

 

 

 

  • 로그아웃할 때는 이렇게 확인창이 뜨고 확인을 누르면 로그아웃이 된다

 

 

 

 

 


 

 

  • loginfo.jsp
    • form_log라는 form을 만들고 method는 post
    • mid와 pwd라는 input박스를 만들어서 name값을 각각 주었다
    • 로그인 버튼타입은 submit으로 써서 form을 넘기게끔 해줬다
<form name='form_log' method='post'>
                <div class="align">
                    <input type="text" id="mid" name = "member_mid" placeholder="FineApple ID">
                     <div class="text-id">
                       
                    </div> 
                    <label></label>
                    <input type="password" id="pwd" name = "member_pwd" placeholder="암호">
                   <div class="text-id">
                        
                    </div> 
                    <input type="submit" id="btnLogin" value="로그인">
                </div>
</form>

 

 

  • login.js
    • loginOut이라는 객체를 만들어주고 id가 btnLogin인 것을 btnLogin으로 선언
    • btnLogin을 눌렀을 때 form_log값을 가져오고 login.jsp로 넘어가도록 action설정
    • 마지막으로 submit
var logInOut = function(){

	
	var btnLogin = document.getElementById('btnLogin'); 
    
	if(btnLogin != null){
	btnLogin.onclick = function(){
		var frm = document.form_log; //name가져옴
		frm.action = '/Fineapple-final/login/login.jsp';
		frm.submit();
	}
	}
		

}

 

 

 

 

 

 

 

 

 

  • login.jsp
    • MemberDao와 MemberVo를 useBean을 사용하여 불러옴
    • setProperty를 사용하여 vo의 모든값을 set해줌
    • form에 있던 id값과 pwd값을 가져와 저장을 해준다
    • dao의 login메소드를 사용함 반환값은 boolean타입
    • 로그인 성공시 id값을 session에 저장하고 index를 다시 로드해준다
    • 로그인 실패시 '로그인에 실패하였습니다'라는 창을 띄우고 다시 로그인창으로 이동하게한다
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <jsp:useBean id = "dao" class="bean.MemberDao"/>
    <jsp:useBean id = "vo" class="bean.MemberVo"/>
    <jsp:setProperty property="*" name = "vo"/>
<%

String mid = request.getParameter("member_mid");	//form에 있는값 (id아닌 name값),
String pwd = request.getParameter("member_pwd");   //id값은 server로 넘어가지않음 name에 해당하는 value값이 넘어갑

boolean b = dao.login(vo.getMember_mid(), vo.getMember_pwd());


if(b){
	//로그인 성공
	session.setAttribute("member_mid", vo.getMember_mid());
	response.sendRedirect("../main/index.jsp");
	
} else {%>
<script>
	alert('로그인에 실패하였습니다');
	
	location.href='./loginfo.jsp';
</script>
<% } %>

 

 

 

 

 

  • memberdao의 login메소드
    • 매개변수는 id과 pwd이며 반환타입은 boolean
    • 기본은 false로 둔다
    • 쿼리해석: id가 ?이고 pwd가 ?인 id의 수를 members테이블에서 select
    • cnt>=1 인 경우는 true가 되도록
	public boolean login(String member_mid, String member_pwd) {
		boolean b = false; //기본 : 로그인되지 않았어
		try {
			String sql = "select count(member_mid) cnt from members where member_mid=? and member_pwd=? ";
			ps = conn.prepareStatement(sql);
			ps.setString(1, member_mid); //index는 1부터 시작
			ps.setString(2, member_pwd);
			
			rs = ps.executeQuery();
			if(rs.next()) {
				int cnt = rs.getInt("cnt");
				if (cnt >= 1) { //정확히는 1
					b = true;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			return b;
		}
	}

 

 

 

728x90
LIST

댓글