[JSP] 회원로그인 로직 구현하기

 

jsp 회원등록,수정,삭제,리스트(CRUD) 로직 구현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
else if (command.equals("/member/memberLoginAction.do")) {  // 로그인 아이디 비밀번호 입력후 실행되는 로직
        
        // memberLogin 페이지에서 확인버튼을 누르면 memberid 와 memberpwd 를 받아와서
        // 파라미터로 가져옴.
        
        System.out.println("연결됨");
        
        
 
        
        String memberId = request.getParameter("memberId");
        String memberPwd = request.getParameter("memberPwd");
        
        // 그리고 로그인 로직을 실행하기 위해 memberDao 로직을 객체 생성하구
        
        
        MemberDao md = new MemberDao();
        
        // 로직을 적용하여 멤버 데이터 객체인 MemberVo 에다가 값을 넣어줌.
 
        MemberVo mv = md.Login(memberId, memberPwd);
        
        
        
        
        // 로그인 여부에 따라서 볼수 있는 페이지와 볼수 없는 페이지를 구분하기위해서
        // LoginActio 페이지에서 로그인이 되면 session 값을 가지고 
        // 볼수 있는 유무룰 파악하기 위해서 세선을 지정해줌 ..  세션을 이클립스에서 가져옴.
        
        HttpSession session = request.getSession();
        
        // mv = 값은 위에서 mv.Login 연결 시킨 객체가 값이 나오게 되면 mv!=null 값을실행.
 
        
        if(mv != null) {
            session.setAttribute("midx",mv.getmidx());            // 로그인 완료하면 세션값을 midx 번호 
            session.setAttribute("memberId", mv.getMemberid());   // 로그인 완료시 아이디 지정
            session.setAttribute("memberPwd", mv.getMemberPwd());             // 비밀번호지정
            session.setAttribute("membername", mv.getMemberName());  // 이름 지정  나중에 세션값을 이용해서 사용
        
 
                
 
            response.sendRedirect(request.getContextPath()+"/");   // << 리다이렉트 하는경우네느 request.setattribute 사용 불가능함.. 서블릿 자체적인 로직이라서 세션값에 담아서 
            
            // memberid 가 값이 없을때는 다시 로그인 페이지로 돌아갑니다..
        }else{
            response.sendRedirect(request.getContextPath()+"/member/memberLogin.do");
        }
        
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
    public MemberVo Login(String memberid,String memberPwd) {  // 아이디 비밀번호 입력시 로직 실행
        MemberVo mv = null;     // 데이터 객체 담아줄거임 return 값
        ResultSet rs = null;    // sql 실행결과 값 지정
        
        
        // sql 로그인하기위한 sql 쿼리문
        String SQL = "select * from member where delyn='N' and memberid=? and memberPwd=?";  
        
        try {
            pstmt = conn.prepareStatement(SQL);
            pstmt.setString(1, memberid);
            pstmt.setString(2, memberPwd);
            rs = pstmt.executeQuery();  // 여기서 성공하면 rs 값이 = 1 , 실패하면 0 이됨
            
            // rs 의 값이 실행되고 한칸씩 밑으로 계속 도는 로직
            if(rs.next()) {
                
                // 데이터베이스에 입력된 멤버 변수에 대한 vo 객체 생성
                mv=new MemberVo();
                
                // vo 객체에다가 사용할 값 지정 해줌 
                mv.setmidx(rs.getInt("midx"));
                mv.setMemberid(rs.getString("memberid"));
                mv.setMemberPwd(rs.getString("memberPwd"));
                mv.setMemberName(rs.getString("membername"));
            }
            // 예외처리구문 어디가 잘못됫는지 확인
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return  mv;  // vo 객체에다가 값 지정해놓고 나중에 사용
    }
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="damain.MemberVo" %>
    
    <%
    
   ArrayList<MemberVo> alist = (ArrayList<MemberVo>)request.getAttribute("alist");
    
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
<link rel="stylesheet" href="style.css">
 
 
<script src="http://code.jquery.com/jquery-3.6.0.min.js"></script>
 
</head>
<body>
<section  class="logo-form">
<h1>로 그 인</h1>
<form action="<%=request.getContextPath()%>/member/memberLoginAction.do" method="post">
<input type="hidden" name="midx">
  <div class="int-area">
  <input type="text" name="memberId" id="id" autocomplete="off" required>
  <label for="id">USER ID</label>
  </div>
    <div class="int-area">
  <input type="password" name="memberPwd" id="pw" autocomplete="off" required>
   <label for="id">password</label>
  </div>
  <div class="btn-area">
    <button id="btn"  type="submit">login</button>
  </div>
</form>
<div class="caption">
<a href="<%=request.getContextPath()%>/member/memberFindByid.do">forgot userid?</a><Br><br>
<a href="<%=request.getContextPath()%>/member/memberFindBypwd.do">forgot password?</a>
</div>
</section>
 
 
 
 
<!-- java script -->
 
<script>
 
 
 
 
let id = $('#id');
let pw = $('#pw');
let btn = $('#btn');
 
$(btn).on('click',function(){
    if($(id).val()==""){
        $(id).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');
            
        },1500);
    }
    else if($(pw).val()==""){
        $(pw).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');    
        },1500);
    }
        action = "<%=request.getContextPath()%>/member/memberJoinAction.do";
        method = "post";
        
    
    
    
});
 
 
 
 
</script>
 
 
 
 
</body>
</html>
cs