[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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
else if (command.equals("/member/memberList.do")) {
        
        // 리스트를 보여줄 배열인 Array 배열 을 생성해주고
        // 값을 저장함
        
        MemberDao md = new MemberDao();    
        
        // 배열인 ArrayList 를 임시 저장하기위해서 배열인 alist 안에 memberListAll 실행값 적용
        
        
        ArrayList<MemberVo> alist = md.memberListAll();
        
        
        // 저장한 memberListAll 값을 alist 로 임시 저장을 해줌
        
        
        request.setAttribute("alist", alist);
        
        // 저장이 완료되면 저장한 값인 alist 를 가지고 memberList 페이지로 이동 하기.
        
        
        RequestDispatcher rd = request.getRequestDispatcher("/member/memberList.jsp");
        rd.forward(request, response);            
    
    }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());
            session.setAttribute("memberId", mv.getMemberid());
            session.setAttribute("memberPwd", mv.getMemberPwd());            
            session.setAttribute("membername", mv.getMemberName());
        
            response.sendRedirect(request.getContextPath()+"/");
            
            // 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 public ArrayList<MemberVo> memberListAll(){         
         
         // 멤버리스트를 뽑을 것은 ArrayList 배열에다가 모두 담기위해서  MemberVo 로 새로운 객체를 생성. 
         
         ArrayList<MemberVo> alist = new ArrayList<MemberVo>(); // << ARRYLIST 는 배열로 나타냄 [0,1,2,3,4] 저장
         
         // 멤버리스트 쫙 뽑고 midx (회원번호 기준으로 내림차순 실시)
         
         String sql = "select * from member where delyn='N' order by midx desc";
         
         // 쿼리문을 실행해야하는 prepareStatement pstm << 실행문
         // conn Connertion conn 데이터베이스 연결 시켜주기  conn << 연결
         
         ResultSet rs = null;
         
         try {
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            
            while(rs.next()) {
                
                // 생성한 MemverVo 인 데이터와 이클립스를 연결 하는 새로운 객체를 생성하고
                // 생성한 객체에다가 oracle 결과값을 실행하는 동안 이라는 코드를 만들어서
                // 객체에다가 결과 값을 저장해준다.
                
                MemberVo mv = new MemberVo();
                mv.setmidx(rs.getInt("midx"));
                mv.setMemberid(rs.getString("memberid"));
                mv.setMemberPwd(rs.getString("memberPwd"));
                mv.setMemberName(rs.getString("memberName"));
                mv.setMemberEmail(rs.getString("memberEmail"));
                mv.setMembergender(rs.getString("membergender"));
                mv.setWriteday(rs.getString("writeday"));
                
                // 객체에다가 저장 했는데 저장한 객체가 소량이 아니기때문에 한번에 묶어서 가져가기 위해서
                // 위에서 만들었던 alist 배열에 순서대로 저장되게 값을 넣는다 밑에 양식있음..
                
                alist.add(mv);
                
                // 위에 저장한 멤버 객체인 mv 를 alist 배열에다가 넣어줘서 꺼내기 쉽게 만듬..
                
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
         
         // alist 배열은 담을 데이터를 반환 시켜줌~
         
         return alist;
     }
     
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  <%@ page import="damain.MemberVo" %>  
    <%
    
    
    // 멤버 컨트롤러에서 저장해서 가져온 alist 값을 꺼내야하니깐 꺼내줌.
    
    
    // 회원 리스트 페이지 이니깐  회원 리스트 로직을 사용한
    // memberListALL  가져와야함 
    // 그것은 ArrayList<MemberVO> 인 배열에 담아두었으니깐 꺼내줌
    
    
    
    // 형 변환을 시켜줌 왼쪽 오른쪽 똑같이 맞춰 줘야함..
    
    ArrayList<MemberVo> alist = (ArrayList<MemberVo>)request.getAttribute("alist");
    
    %>
    
    
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#btn{
float: right;
margin-right: 40px;
}
 
#btn1{
margin-left: 30px;
}
 
body{
display:flex;
text-align:center;
justify-content: center;
align-items: center;
 
}
 
#main{
margin-top: 150px;
}
</style>
 
<!-- FONT AWE -->
<script src="https://kit.fontawesome.com/6c060c00b1.js" crossorigin="anonymous"></script>
 
<!-- BOOT STRAP -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</head>
<body>
  <div id="main">
        <h1 style="text-align: center;">가입한 회원</h1>
        <hr><br>
   
        <br><br>
        <table class="table table-hover" style="width: 1200px;" id="table1">
            <thead>
                <tr>
                    <th>회원번호</th>
                    <th>회원아이디</th>
                    <th>회원비밀번호</th>
                    <th>회원이름</th>
                    <th>회원성별</th>
                    <th>회원이메일</th>
                    <th>가입날짜</th>
                </tr>
            </thead>
            <tbody>
            
             <!-- MemberDao 의 oracle 결과값을 
             
              데이터 저장값인 MemberVo 를 불러와서 저장한 값을 가져옴..?
              
               -->
            
            <% for(MemberVo mv : alist) { %>
            
                <tr>
                    <td><%=mv.getmidx() %></td>
                    <td><%=mv.getMemberid() %></td>
                    <td><%=mv.getMemberPwd() %></td>
                     <td><%=mv.getMemberName() %></td>
                    <td><%=mv.getMembergender() %></td>
                    <td><%=mv.getMemberEmail() %></td>
                    <td><%=mv.getWriteday().substring(0,16) %></td>
                </tr>
            <%  } %>
            </tbody>
        </table>
 
   
        
 
        <br><br>
        <nav aria-label="Page navigation example">
            <ul class="pagination justify-content-center">
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">Previous</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">1</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">2</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">3</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">4</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">5</a></li>
              <li class="page-item"><a class="page-link" href="http://127.0.0.1:5500/index.html#">Next</a></li>
            </ul>
        </nav>
    </div>
</body>
</html>
cs